Страницы: 1
RSS
Макрос открытия скрытых строк
 
Подскажите, как можно макросом автоматически открывать скрытые строки? Поиск юзал, пара решений есть, но я их не осилил, увы.  
Условие, говорят, простое - если в итоговой таблице на листе3 по стобцу "I" значения ячеек в строках > 0, то строки открываются.
 
Циклом бежим по строкам, если в девятом столбце значение в ячейке больше 0, то отображаем эту строку.
 
{quote}{login=Юрий М}{date=02.02.2011 07:50}{thema=}{post}Циклом бежим по строкам, если в девятом столбце значение в ячейке больше 0, то отображаем эту строку.{/post}{/quote}  
 
Ага (мрачно), я тож об этом догадываюсь. Мои догадки, к сожалению, никак не могут преобразоваться в нерусские слова с хаотичными знаками препинания, которые вносятся в редакторе vba. Причем, в умной и толстой книжке автор утверждает, что это проще простого. Возможно. Но не для меня.  
Скажите, а вы можете это изобразить в виде кода?  
Я пробовал вставить вот это:  
 
Sub ToggleButton1_Click()  
Dim i As Range  
 Application.ScreenUpdating = 0  
 If ToggleButton1 Then  
   For Each i In [I6:I108]
     If Len(i) = 0 Then i.EntireRow.Hidden = 1  
   Next  
 Else  
   [I6:I108].EntireRow.Hidden = 0
 End If  
 Application.ScreenUpdating = 1  
End Sub  
 
Но здесь решение на кнопке, да и открываются у меня сразу все скрытые строки почему-то. А когда я попробовал это поковырять, у меня excel так глюканул, что даже принудительно не хотел закрываться, да еще и стер мне половину того, что я наваял, без всякого восстановления. Видать пытливый человеческий ум выходит за рамки человеком же изобретенного.
 
Не всё так мрачно :-)  
Sub Test()  
For i = 2 To 100  
If Cells(i, 9).Value > 0 Then Rows(i).Hidden = False  
Next  
End Sub
 
Я поставил в модуль. Только... чем он запускается?
 
Ааа, кнопкой. Понял, да вроде работает. А можно сделать это автоматически?
 
Точнее, открытие и закрытие. Можно и на кнопке. Подскажите, плз
 
Можно, но нужно знать - на какое событие макрос должен сработать.
 
{quote}{login=Юрий М}{date=02.02.2011 08:34}{thema=}{post}Можно, но нужно знать - на какое событие макрос должен сработать.{/post}{/quote}  
 
Не очень понятно... На данные в ячейке, разве нет?    
Тут смысл такой: занес данные, получил таблицу с итогами, жмакнул кнопку, нужные строки открылись. А потом я поменял данные и в итоговой таблице данные в ячейках тож изменились, в каких-то ноль, а в каких-то значение и, получается так, что надо обновить отображение итоговой таблицы. Жмакнув кнопку еще раз, я увижу, что строки с нулевым знаком скрылись, а строки, в ячейках которых значение открылись.  
А при всем при этом итоговая таблица рваная, то есть, имеются пустые строки, которым не надо скрываться и раскрываться.  
Примерно так.
 
Перечитываю название темы и вопрос - нигде не упоминается про скрытие. Разговор только про ОТОБРАЖЕНИЕ УЖЕ скрытых.  
По поводу события. Нажатие кнопки - событие, изменение данных в какой либо ячейке - событие, пересчёт, двойной клик по ячейке, правый клик... Откуда мне знать, по какому из них у Вас "сделать это автоматически" Вот и я писал: "нужно знать - на какое событие макрос должен сработать."
 
{quote}{login=Юрий М}{date=02.02.2011 08:58}{thema=}{post}Перечитываю название темы и вопрос - нигде не упоминается про скрытие. Разговор только про ОТОБРАЖЕНИЕ УЖЕ скрытых.  
По поводу события. Нажатие кнопки - событие, изменение данных в какой либо ячейке - событие, пересчёт, двойной клик по ячейке, правый клик... Откуда мне знать, по какому из них у Вас "сделать это автоматически" Вот и я писал: "нужно знать - на какое событие макрос должен сработать."{/post}{/quote}  
 
Касаемо скрытия, это только счас до меня дошло, простите, сразу не подумал.    
А событие... вообще, конечно же изменение данных в последнем столбце в итоговой таблице, с нуля на значение и наоборот. Но, если такое сложно, то кнопка.
 
Раз нужно менять значение, а эта строка скрыта - значит сначала нужно отобразить все строки. Так? Тогда на кнопку такой макрос:  
Sub ShowAllRows()  
Rows("2:100").EntireRow.Hidden = False  
End Sub  
Отобразили все строки.  
А уж где у Вас последний столбец (в котором отслеживать изменение) - понятия не имею.
 
нет, нет. В итоговой таблице значения только отображаются. И основной столбец - "I". А данные вводятся на других листах. Вот я и думал, что по значениям в этом столбце будет происходить открытие/сокрытие строк. Что-то вроде того: если в столбце есть ячейки, у которых значение "0" - строка скрыта, если есть ячейки, у которых значение ">0", то такие строки открыты
 
Чтобы уменьшить количество запусков макроса, укажите - на "первом" листе в каких столбцах будут вводиться данные?
Страницы: 1
Читают тему
Наверх