Здравствуйте! На листе создано 2 кнопки ToggleButton. При нажатии первой скрываются определенные колонки, при "отжатии" все скрытые столбцы отображаются. При нажатии второй скрываются другие диапазоны строк. Проблема в том, что если нажать первую и затем сразу вторую кнопку, то диапазоны скрываемых столбцов накладываются и остается некорректный отображаемый диапазон. Подскажите как сделать, чтобы при нажатии кнопки вторая выключалась, или перед отработкой макроса все изменения на листе отменялись? Код прилагаю: [vba]
Код
Private Sub ToggleButton1_Click()
Dim xAddress As String xAddress = "B:C,H:H,J:J,L:Q,S:U,W:Z,AB:AD,AF:AI,AK:AR,AT:AU,AW:AW,AY:BD,BF:BP,BT:BX"
If ToggleButton1.Value Then Range(xAddress).EntireColumn.Hidden = True
Else Columns.Hidden = False
End If End Sub
Private Sub ToggleButton2_Click()
Dim xAddress2 As String xAddress2 = "B:C,H:H,J:J,L:Q,S:U,W:Z,AB:AD,AE:AI,AK:AR,AT:AU,AW:AW,AY:BD,BF:BL,BN:BR,BT:BX"
If ToggleButton2.Value Then Range(xAddress2).EntireColumn.Hidden = True
Здравствуйте! На листе создано 2 кнопки ToggleButton. При нажатии первой скрываются определенные колонки, при "отжатии" все скрытые столбцы отображаются. При нажатии второй скрываются другие диапазоны строк. Проблема в том, что если нажать первую и затем сразу вторую кнопку, то диапазоны скрываемых столбцов накладываются и остается некорректный отображаемый диапазон. Подскажите как сделать, чтобы при нажатии кнопки вторая выключалась, или перед отработкой макроса все изменения на листе отменялись? Код прилагаю: [vba]
Код
Private Sub ToggleButton1_Click()
Dim xAddress As String xAddress = "B:C,H:H,J:J,L:Q,S:U,W:Z,AB:AD,AF:AI,AK:AR,AT:AU,AW:AW,AY:BD,BF:BP,BT:BX"
If ToggleButton1.Value Then Range(xAddress).EntireColumn.Hidden = True
Else Columns.Hidden = False
End If End Sub
Private Sub ToggleButton2_Click()
Dim xAddress2 As String xAddress2 = "B:C,H:H,J:J,L:Q,S:U,W:Z,AB:AD,AE:AI,AK:AR,AT:AU,AW:AW,AY:BD,BF:BL,BN:BR,BT:BX"
If ToggleButton2.Value Then Range(xAddress2).EntireColumn.Hidden = True
Lex177, Добрый день! Я бы Вам предложил адрес скрываемых столбцов прописать не буквами а цифрами в массиве, например: Array(2, 3, 8, 12, 13, 15, 16, 26) А после циклом For each перебрать их, проверяя на скрытие If Columns(x).Hidden = False then Columns(x).Hidden = True
Lex177, Добрый день! Я бы Вам предложил адрес скрываемых столбцов прописать не буквами а цифрами в массиве, например: Array(2, 3, 8, 12, 13, 15, 16, 26) А после циклом For each перебрать их, проверяя на скрытие If Columns(x).Hidden = False then Columns(x).Hidden = TrueDmitriy_37