Страницы: 1
RSS
Как отследить состояние "флажка"?
 
Вставил на лист элемент управления "Флажок", назначил на него макрос. Хочу, чтоб макрос работал по условию
Код
If "флажок установлен" Then ...
 Как записать в "If" проверку состояния флажка?
 
Михаил, запишите макрорекордером щелчок элементу управления
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,
1. Открываю новый документ.
2. Вставляю флажок.
3. Запускаю макрорекордер
4 Кликаю флажок, останавливаю запись.

Ничего не пишется.

В принципе костыль соорудил, связал флажок с ячейкой, покрасил текст в белый цвет и отслеживаю ее. Но все-таки...
Изменено: Михаил - 24.05.2021 16:51:32
 
Если флажок связан  с ячейкой, то щелчки по нему будут ее значение изменять.
Вот его изменение и надо ловить.
upd - да, как выше и написано.
Но в принципе флажок для другого предназначен, не для запуска чего-либо. Так что это как-то логично.
Обычно запускается чем-то макрос и в зависимости от состояния флажков делает то или иное действие.

А если файл открыли, а флажок установлен.
А если он установлен и его сняли.
А если он полчаса уже стоит такой установленный.
Изменено: Xel - 24.05.2021 16:58:51
 
Цитата
Xel написал:
А если файл открыли, а флажок установлен. А если он установлен и его сняли. А если он полчаса уже стоит такой установленный.
А это не важно, макрос работает по клику на флажок. Наверное должен быть способ проверки флажка без дополнительной ячейки.
 
Код
If ActiveSheet.CheckBoxes(1).Value then
 
Михаил,
какую задачу решаете?
- отслеживать состояние флажка (отследить изменение состояния флажка)
- в ходе выполнения какого-то макроса опросить состояние флажка и выполнить код по соответствующей ветке
эти две задачи обьединяет только необходимость контактировать с флажком, во всем остальном - это две совершенно разные задачи
вы какую решаете?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Михаил написал:
А это не важно, макрос работает по клику на флажок.
По клику - это как? Сняли-поставили неважно?
Замените флажок картинкой в виде флажка.
 
МатросНаЗебре, Спасибо, работает!
Код
Sub flagState()
    If ActiveSheet.CheckBoxes(1).Value = 1 Then
        MsgBox "On"
    Else: MsgBox "Off"
    End If
End Sub


Вроде в первом сообщении понятно было описано, но некоторые любят усложнить...
Страницы: 1
Наверх