Здравствуйте! Подскажите как исправить код макроса чтобы высота строк менялась на листе "Сдельная" в диапазоне C5:F70, C78:F86, C91:F106 и по значению в ячейке с другого листа.
Здравствуйте! Подскажите как исправить код макроса чтобы высота строк менялась на листе "Сдельная" в диапазоне C5:F70, C78:F86, C91:F106 и по значению в ячейке с другого листа.bumnik
Private Sub Worksheet_Change(ByVal Target As Range) r_ = Лист2.Range("G4:G" & Rows.Count).End(xlUp).Row Лист2.Range("G4:G" & r_).AutoFilter Field:=1, Criteria1:="<>0", VisibleDropDown:=False End Sub
[/vba]
Если я правильно понял, то в модуль листа 1 [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) r_ = Лист2.Range("G4:G" & Rows.Count).End(xlUp).Row Лист2.Range("G4:G" & r_).AutoFilter Field:=1, Criteria1:="<>0", VisibleDropDown:=False End Sub
Вставьте 88-ю пустую строку (автофильтр в Excel чересчур умный иногда бывает) и [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) r_ = 87 If Лист2.Range("G4:G" & r_).AutoFilter Then'сделано только на тот случай, если уже стоит автофильтр Лист2.Range("G4:G" & r_).AutoFilter End If'после первого запуска If - End If не обязательно Лист2.Range("G4:G" & r_).AutoFilter Field:=1, Criteria1:="<>0", VisibleDropDown:=False End Sub
[/vba] Или можно просто пробегаться по столбцу G и скрывать нулевые ячейки. Но это дольше. Хотя, на таком объеме незаметно будет.
Вставьте 88-ю пустую строку (автофильтр в Excel чересчур умный иногда бывает) и [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) r_ = 87 If Лист2.Range("G4:G" & r_).AutoFilter Then'сделано только на тот случай, если уже стоит автофильтр Лист2.Range("G4:G" & r_).AutoFilter End If'после первого запуска If - End If не обязательно Лист2.Range("G4:G" & r_).AutoFilter Field:=1, Criteria1:="<>0", VisibleDropDown:=False End Sub
[/vba] Или можно просто пробегаться по столбцу G и скрывать нулевые ячейки. Но это дольше. Хотя, на таком объеме незаметно будет._Boroda_