Написал тут такой код (Требования: Есть книга состоящая, как минимум, из 3 листов "Лист1", "Лист2", "Лист3", возможно наличие и других листов. На листе "Лист1" в ячейке А1 условие (2 или 3) В зависимости от данных в ячейке А1 на листе "Лист1" листы - "Лист2" или "Лист3" должны скрываться. Если на листе "Лист1" в ячейке А1 значение 1, то отображаются все листы. Если в книге есть другие листы, то с ними ничего происходить не должно. После любого выбора надо возвращаться на Лист1):
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Sheets("Лист1").Range("A1") = 2 Then Sheets("Лист2").Visible = False Sheets("Лист3").Visible = True ElseIf Sheets("Лист1").Range("A1") = 3 Then Sheets("Лист3").Visible = False Sheets("Лист2").Visible = True ElseIf Sheets("Лист1").Range("A1") = 1 Then Sheets("Лист3").Visible = True Sheets("Лист2").Visible = True End If Sheets("Лист1").Select Application.ScreenUpdating = True End Sub
[/vba]
Вопрос: Можно его принципиально сократить?
Написал тут такой код (Требования: Есть книга состоящая, как минимум, из 3 листов "Лист1", "Лист2", "Лист3", возможно наличие и других листов. На листе "Лист1" в ячейке А1 условие (2 или 3) В зависимости от данных в ячейке А1 на листе "Лист1" листы - "Лист2" или "Лист3" должны скрываться. Если на листе "Лист1" в ячейке А1 значение 1, то отображаются все листы. Если в книге есть другие листы, то с ними ничего происходить не должно. После любого выбора надо возвращаться на Лист1):
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Sheets("Лист1").Range("A1") = 2 Then Sheets("Лист2").Visible = False Sheets("Лист3").Visible = True ElseIf Sheets("Лист1").Range("A1") = 3 Then Sheets("Лист3").Visible = False Sheets("Лист2").Visible = True ElseIf Sheets("Лист1").Range("A1") = 1 Then Sheets("Лист3").Visible = True Sheets("Лист2").Visible = True End If Sheets("Лист1").Select Application.ScreenUpdating = True End Sub
[/vba]
Вопрос: Можно его принципиально сократить?Serge_007
Хозяин-барин. Мой вариант работает точно так же как и у Михаила, просто это сделано в цикле и поэтому код позволяет элементарно подстраивать его под изменяющиеся нужды.
Хозяин-барин. Мой вариант работает точно так же как и у Михаила, просто это сделано в цикле и поэтому код позволяет элементарно подстраивать его под изменяющиеся нужды.Alex_ST