Добрый день Нужна ваша помощь Имеется таблица с 2 листами,при заполнение столбца G на первом листе данные автоматически переносятся на второй лист столбец E, и в дальнейшем уже планируется либо скрыть ячейки с отрицательным числом либо отобразить, если на первом листе значение изменится на положительное. Я не особо силен в макросах но читая ветки смог написать короткий код:
Код
Sub Ig()
Dim r As Range
Application.ScreenUpdating = False
For Each r In Range("E19:E327").Rows
If WorksheetFunction.CountIf(r, ">0") = 0 Then r.EntireRow.Hidden = True
If WorksheetFunction.CountIf(r, "<0") Then r.EntireRow.Hidden = False
Next
Application.ScreenUpdating = True
End Sub
Но столкнулся с проблемой что строки на втором листе не обновляются, т.е. если на первом листе значение ячейки станет положительным, второй лист и соотвественно макрос не обновляет параметры второго листа.
Очень прошу оказать содействие в корректировке кода
Sub Ig()
Dim r As Range
Application.ScreenUpdating = False
For Each r In Range("E19:E327").Rows
If Not IsError(r) Then Worksheets(1).Rows(r.Row - 13).Hidden = r > 0
Next
Application.ScreenUpdating = True
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Sub Ig()
Dim r As Range
Application.ScreenUpdating = False
For Each r In Range("E19:E327").Rows
If Not IsError(r) Then
Worksheets(1).Rows(r.Row - 13).Hidden = r < 0
Rows(r.Row).Hidden = r < 0
End If
Next
Application.ScreenUpdating = True
End Sub
макрос выполняется при открытом листе заявка на снаюжение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
GRIM, проверил, работает только в тех случаях когда, в первом листе поменять положительно число на отрицательное, тогда ячейки скрываются нормально, но заного так и не отображается на листе 2, если отрицательное число на положительное
Ігор Гончаренко, попробовал, все равно не обновляется страница, первый раз макрос применяется, но потом не обновляется, может сам что не так делаю, в принципе вставляю и запускаю, затем меняю на первом листе значение столбца G
Major_007, очень странно( Возможно у Вас есть ограничение в настройках по работе макросами, т.к. у меня все работает и туда и обратно. Может формат сменить... Как в этом файле?
GRIM написал: Sub Ig() Dim r As Range Application.ScreenUpdating = False For Each r In Range("E19:E327").Rows If Not IsError® Then Worksheets(1).Rows(r.Row - 13).Hidden = r > 0 Next Application.ScreenUpdating = TrueEnd Sub
А формат чего конкретно может влиять на исполнение макроса?