Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выключить ToggleButton по нажатию другой ToggleButton - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выключить ToggleButton по нажатию другой ToggleButton (Макросы/Sub)
Выключить ToggleButton по нажатию другой ToggleButton
Lex177 Дата: Понедельник, 03.02.2020, 18:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
На листе создано 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

Else
    Columns.Hidden = False
    ActiveSheet.ShowAllData
    
End If
End Sub
[/vba]


Сообщение отредактировал Lex177 - Понедельник, 03.02.2020, 18:46
 
Ответить
СообщениеЗдравствуйте!
На листе создано 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

Else
    Columns.Hidden = False
    ActiveSheet.ShowAllData
    
End If
End Sub
[/vba]

Автор - Lex177
Дата добавления - 03.02.2020 в 18:06
Dmitriy_37 Дата: Понедельник, 03.02.2020, 19:40 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
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 = True

Автор - Dmitriy_37
Дата добавления - 03.02.2020 в 19:40
RAN Дата: Вторник, 04.02.2020, 17:35 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5251
Репутация: 1054 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub ToggleButton1_Click()
ToggleButton2 = 0
[/vba]
Далее по тексту.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub ToggleButton1_Click()
ToggleButton2 = 0
[/vba]
Далее по тексту.

Автор - RAN
Дата добавления - 04.02.2020 в 17:35
Lex177 Дата: Среда, 05.02.2020, 11:30 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Private Sub ToggleButton1_Click()
ToggleButton2 = 0

Далее по тексту.


Что-то не фурычит. А если по аналогии для второй кнопки пишу
[vba]
Код

Private Sub ToggleButton2_Click()
ToggleButton1 = 0
[/vba]

То и вовсе вылезает ошибка: Метод ShowAllData завершен не верно...
 
Ответить
Сообщение
Private Sub ToggleButton1_Click()
ToggleButton2 = 0

Далее по тексту.


Что-то не фурычит. А если по аналогии для второй кнопки пишу
[vba]
Код

Private Sub ToggleButton2_Click()
ToggleButton1 = 0
[/vba]

То и вовсе вылезает ошибка: Метод ShowAllData завершен не верно...

Автор - Lex177
Дата добавления - 05.02.2020 в 11:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выключить ToggleButton по нажатию другой ToggleButton (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!