Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скрытие/Отображение строк макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие/Отображение строк макросом (Настройки Excel/Setup)
Скрытие/Отображение строк макросом
Цезарь Дата: Вторник, 28.07.2015, 11:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Приветствую всех) Я понимаю, то что тема такая есть даже с готовым решением, но я хоть убейте не могу перенести макрос к себе в рабочую таблицу. Не могу адаптировать. Файл приложил, помогите сделать такой макрос, там в таблице есть что нужно сделать. область выделена жёлтым цветом. К сожалению не смог прикрепить всю свою таблицу, только копию листа на котором нужно сделать макрос, так как весь рабочий документ очень много весит.
К сообщению приложен файл: _3.xls (41.5 Kb)
 
Ответить
СообщениеПриветствую всех) Я понимаю, то что тема такая есть даже с готовым решением, но я хоть убейте не могу перенести макрос к себе в рабочую таблицу. Не могу адаптировать. Файл приложил, помогите сделать такой макрос, там в таблице есть что нужно сделать. область выделена жёлтым цветом. К сожалению не смог прикрепить всю свою таблицу, только копию листа на котором нужно сделать макрос, так как весь рабочий документ очень много весит.

Автор - Цезарь
Дата добавления - 28.07.2015 в 11:58
Samaretz Дата: Вторник, 28.07.2015, 12:15 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация: 63 ±
Замечаний: 0% ±

Excel 2010; 2013; 2016
Так?
[vba]
Код
Sub Collapse_Expand_Rows()
Dim i As Long
With Sheet3
   For i = 44 To 59
     .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0
   Next i
   For i = 67 To 83
     .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0
   Next i
End With
End Sub
[/vba]
К сообщению приложен файл: 8231661.xls (59.5 Kb)
 
Ответить
СообщениеТак?
[vba]
Код
Sub Collapse_Expand_Rows()
Dim i As Long
With Sheet3
   For i = 44 To 59
     .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0
   Next i
   For i = 67 To 83
     .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0
   Next i
End With
End Sub
[/vba]

Автор - Samaretz
Дата добавления - 28.07.2015 в 12:15
Цезарь Дата: Вторник, 28.07.2015, 12:20 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Samaretz, там внизу почему то всё скрыло(( Сверху шикарно получилось))
 
Ответить
СообщениеSamaretz, там внизу почему то всё скрыло(( Сверху шикарно получилось))

Автор - Цезарь
Дата добавления - 28.07.2015 в 12:20
Цезарь Дата: Вторник, 28.07.2015, 12:23 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Samaretz, хотя нет вру. должно быть так. Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
 
Ответить
СообщениеSamaretz, хотя нет вру. должно быть так. Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.

Автор - Цезарь
Дата добавления - 28.07.2015 в 12:23
Samaretz Дата: Вторник, 28.07.2015, 12:24 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация: 63 ±
Замечаний: 0% ±

Excel 2010; 2013; 2016
Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
А если меньше нуля? Или такого не может быть в принципе?

Если в желтых ячейках могут быть только неотрицательные значения, то тогда макрос будет таким (плюс см. вложенный файл):
[vba]
Код
Sub Collapse_Expand_Rows()
Dim i As Long
With Sheet3
   For i = 44 To 59
     .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0
   Next i
   For i = 67 To 83
     .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0
   Next i
End With
End Sub
[/vba]
К сообщению приложен файл: 9877298.xls (55.0 Kb)


Сообщение отредактировал Samaretz - Вторник, 28.07.2015, 12:32
 
Ответить
Сообщение
Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
А если меньше нуля? Или такого не может быть в принципе?

Если в желтых ячейках могут быть только неотрицательные значения, то тогда макрос будет таким (плюс см. вложенный файл):
[vba]
Код
Sub Collapse_Expand_Rows()
Dim i As Long
With Sheet3
   For i = 44 To 59
     .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0
   Next i
   For i = 67 To 83
     .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0
   Next i
End With
End Sub
[/vba]

Автор - Samaretz
Дата добавления - 28.07.2015 в 12:24
Udik Дата: Вторник, 28.07.2015, 13:25 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Почти тоже самое, только с кнопочками
[vba]
Код

Public Sub hide(num As Byte)
        Static i As Byte
        Dim arrDelt(1 To 2) As Integer
            
        arrDelt(1) = 42
        arrDelt(2) = 66
            
        For i = 1 To 17
        If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then
         Worksheets("l1").Rows(arrDelt(num) + i).Hidden = True
        End If
        Next i
            
End Sub

Public Sub unhide(num As Byte)
        Static i As Byte
        Dim arrDelt(1 To 2) As Integer
            
        arrDelt(1) = 42
        arrDelt(2) = 66
            
        For i = 1 To 17
         Worksheets("l1").Rows(arrDelt(num) + i).Hidden = False
         
        Next i
            
End Sub
[/vba]
К сообщению приложен файл: hide.xls (78.5 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 28.07.2015, 13:32
 
Ответить
СообщениеПочти тоже самое, только с кнопочками
[vba]
Код

Public Sub hide(num As Byte)
        Static i As Byte
        Dim arrDelt(1 To 2) As Integer
            
        arrDelt(1) = 42
        arrDelt(2) = 66
            
        For i = 1 To 17
        If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then
         Worksheets("l1").Rows(arrDelt(num) + i).Hidden = True
        End If
        Next i
            
End Sub

Public Sub unhide(num As Byte)
        Static i As Byte
        Dim arrDelt(1 To 2) As Integer
            
        arrDelt(1) = 42
        arrDelt(2) = 66
            
        For i = 1 To 17
         Worksheets("l1").Rows(arrDelt(num) + i).Hidden = False
         
        Next i
            
End Sub
[/vba]

Автор - Udik
Дата добавления - 28.07.2015 в 13:25
Цезарь Дата: Вторник, 28.07.2015, 13:25 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Samaretz, Спасибо громадное))) всё работает)) осталось только перенести в свою таблицу, будут вопросы, напишу) но их не должно быть))
 
Ответить
СообщениеSamaretz, Спасибо громадное))) всё работает)) осталось только перенести в свою таблицу, будут вопросы, напишу) но их не должно быть))

Автор - Цезарь
Дата добавления - 28.07.2015 в 13:25
Цезарь Дата: Вторник, 28.07.2015, 14:19 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Samaretz, не получается перенести. пишет ошибку:
Object required (Error 424)
 
Ответить
СообщениеSamaretz, не получается перенести. пишет ошибку:
Object required (Error 424)

Автор - Цезарь
Дата добавления - 28.07.2015 в 14:19
Цезарь Дата: Вторник, 28.07.2015, 14:22 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Udik, Не могу переместить твой макрос в свою таблицу. Сохраняю его у себя, но всё равно через сервис-макросы я его даже увидеть не могу.
 
Ответить
СообщениеUdik, Не могу переместить твой макрос в свою таблицу. Сохраняю его у себя, но всё равно через сервис-макросы я его даже увидеть не могу.

Автор - Цезарь
Дата добавления - 28.07.2015 в 14:22
Цезарь Дата: Вторник, 28.07.2015, 14:24 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Возможны ли эти проблемы из за того, что у меня выше Excel 2003 нет ни чего?
 
Ответить
СообщениеВозможны ли эти проблемы из за того, что у меня выше Excel 2003 нет ни чего?

Автор - Цезарь
Дата добавления - 28.07.2015 в 14:24
Udik Дата: Вторник, 28.07.2015, 15:43 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Я специально в формате 2003 сохранил. Через макросы вы не увидите, т.к. процедуры с параметром. Смотреть нужно через кнопку VBA на вкладке разработчик. Запуск либо кнопкой, либо дописать четыре простеньких макроса, которые будут тупо вызывать процедуры с параметром.
[p.s.]названия листа в макросе на ваш нужно сменить, либо переименовать ваш лист


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 28.07.2015, 15:45
 
Ответить
СообщениеЯ специально в формате 2003 сохранил. Через макросы вы не увидите, т.к. процедуры с параметром. Смотреть нужно через кнопку VBA на вкладке разработчик. Запуск либо кнопкой, либо дописать четыре простеньких макроса, которые будут тупо вызывать процедуры с параметром.
[p.s.]названия листа в макросе на ваш нужно сменить, либо переименовать ваш лист

Автор - Udik
Дата добавления - 28.07.2015 в 15:43
Цезарь Дата: Вторник, 28.07.2015, 16:37 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Udik, можешь сделать 4 простеньких макроса по моему примеру?) Я вообще не шарю... даже не могу найти эту кнопку VBA.
 
Ответить
СообщениеUdik, можешь сделать 4 простеньких макроса по моему примеру?) Я вообще не шарю... даже не могу найти эту кнопку VBA.

Автор - Цезарь
Дата добавления - 28.07.2015 в 16:37
Udik Дата: Вторник, 28.07.2015, 17:08 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
вот код с доп макросами
[vba]
Код


Public Sub hide(num As Byte)
      Static i As Byte
      Dim arrDelt(1 To 2) As Integer
        
      arrDelt(1) = 42
      arrDelt(2) = 66
        
      For i = 1 To 17
      If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then
       Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = True
      End If
      Next i
        
End Sub

Public Sub unhide(num As Byte)
      Static i As Byte
      Dim arrDelt(1 To 2) As Integer
        
      arrDelt(1) = 42
      arrDelt(2) = 66
        
      For i = 1 To 17
       Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = False
        
      Next i
        
End Sub

Public Sub hide1()
      hide (1)
End Sub

Public Sub hide2()
      hide (2)
End Sub

Public Sub unhide1()
      unhide (1)
End Sub

Public Sub unhide2()
      unhide (2)
End Sub

[/vba]
вот кнопка
К сообщению приложен файл: 9815116.jpg (27.2 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 28.07.2015, 17:10
 
Ответить
Сообщениевот код с доп макросами
[vba]
Код


Public Sub hide(num As Byte)
      Static i As Byte
      Dim arrDelt(1 To 2) As Integer
        
      arrDelt(1) = 42
      arrDelt(2) = 66
        
      For i = 1 To 17
      If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then
       Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = True
      End If
      Next i
        
End Sub

Public Sub unhide(num As Byte)
      Static i As Byte
      Dim arrDelt(1 To 2) As Integer
        
      arrDelt(1) = 42
      arrDelt(2) = 66
        
      For i = 1 To 17
       Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = False
        
      Next i
        
End Sub

Public Sub hide1()
      hide (1)
End Sub

Public Sub hide2()
      hide (2)
End Sub

Public Sub unhide1()
      unhide (1)
End Sub

Public Sub unhide2()
      unhide (2)
End Sub

[/vba]
вот кнопка

Автор - Udik
Дата добавления - 28.07.2015 в 17:08
Цезарь Дата: Четверг, 30.07.2015, 10:11 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Udik, вообще не видит(( но всё равно спасибо за помощь. Не знаю как но сам сделал.
 
Ответить
СообщениеUdik, вообще не видит(( но всё равно спасибо за помощь. Не знаю как но сам сделал.

Автор - Цезарь
Дата добавления - 30.07.2015 в 10:11
RAN Дата: Четверг, 30.07.2015, 11:36 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Смотреть нужно через кнопку VBA на вкладке разработчик

Которой в 2003 нет в принципе. :D
Не знаю как но сам сделал.

Так последние коды и должны были появиться в окне макросов (alt+F8)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Смотреть нужно через кнопку VBA на вкладке разработчик

Которой в 2003 нет в принципе. :D
Не знаю как но сам сделал.

Так последние коды и должны были появиться в окне макросов (alt+F8)

Автор - RAN
Дата добавления - 30.07.2015 в 11:36
Udik Дата: Четверг, 30.07.2015, 12:09 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Которой в 2003 нет

Ну какой-то аналог же есть, люди ж кодят :) (через менюхи, вероятно)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
Которой в 2003 нет

Ну какой-то аналог же есть, люди ж кодят :) (через менюхи, вероятно)

Автор - Udik
Дата добавления - 30.07.2015 в 12:09
AndreTM Дата: Четверг, 30.07.2015, 15:30 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Ну какой-то аналог же есть

Ну, "люди" давно привыкли к комбинации Alt+F11 и не заморачиваются поиском кнопочек в интерфейсе... :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Ну какой-то аналог же есть

Ну, "люди" давно привыкли к комбинации Alt+F11 и не заморачиваются поиском кнопочек в интерфейсе... :)

Автор - AndreTM
Дата добавления - 30.07.2015 в 15:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие/Отображение строк макросом (Настройки Excel/Setup)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!