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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выключить ToggleButton по нажатию другой ToggleButton (Макросы/Sub)
Выключить ToggleButton по нажатию другой ToggleButton
Lex177 Дата: Понедельник, 03.02.2020, 18:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 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
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 4 ±
Замечаний: 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
Группа: Друзья
Ранг: Экселист
Сообщений: 5630
Репутация: 1143 ±
Замечаний: 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
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 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
Lex177 Дата: Вторник, 30.06.2020, 10:18 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Руки долго не доходили до кнопок, наконец ими занялся. Все оказалось просто до безобразия. Выкладываю решение, может кому-нибудь пригодится:

[vba]
Код

If ToggleButton1.Value = True Then

    ToggleButton2.Value = False
    ToggleButton3.Value = False
[/vba]

Для остальных по аналогии.
 
Ответить
СообщениеРуки долго не доходили до кнопок, наконец ими занялся. Все оказалось просто до безобразия. Выкладываю решение, может кому-нибудь пригодится:

[vba]
Код

If ToggleButton1.Value = True Then

    ToggleButton2.Value = False
    ToggleButton3.Value = False
[/vba]

Для остальных по аналогии.

Автор - Lex177
Дата добавления - 30.06.2020 в 10:18
Pelena Дата: Вторник, 30.06.2020, 10:20 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 18557
Репутация: 4203 ±
Замечаний: ±

Excel 2016 & Mac Excel
Почему именно ToggleButton, а не OptionButton?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПочему именно ToggleButton, а не OptionButton?

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

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