Страницы: 1
RSS
Хранение настроек конфигурации формы. Запретить срабатывание макросов при инициализации формы.
 
День добрый.
Имеется форма, на которой находится большое количество кнопочек и галочек с переключателми. Все эти элементы конфигурируют файл. Все состояния элементов записаны на отдельном листе в виде 1 и 0, т.е. галочка стоит или нет или кнопочка и прочее.
Получается что при открытии формы мы видим конфигурацию файла, каждый элемент отвечает за своё.
При установке галочки происходит какое-то событие (включается или отключается автокоррекция формул, перекрестие и прочее).
В общем-то вопрос вот в чём. При инициализации формы происходит чтение состояния элементов с отдельного листа и тем самым устанавливаются галочки в то состояние, которое задал пользователь. Но при инициализации галочки в состояние 1, автоматом происходит срабатывание макроса назначенного на эту галочку, что недопустимо. При загрузке формы элементы просто должны принять состояние, но макрос не должен срабатывать. После загрузки формы всё должно работать как и следует.
Я решил этот вопрос при помощи добавления переменной, но есть ли другой вариант хранения конфигурации формы (не на листе). Или сделать так чтобы макросы не срабатывали при инициализации формы.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Есть еще активация
процентов на 80 помогает
 
RAN, при активации произойдёт тоже самое. Тут вопрос именно в том как установить галочку в 1, но чтобы макрос не сработал назначенный на неё.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
в процедуре инициализации формы в начале процедуры - отключаете обработку событий, в конце - включаете
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Iгор, если вы про EnableEvents, то это не работает. Пробовал.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Сейчас поглядел файл.
В нем стандартное, и совершенно верное решение.
Не парься, остальные варианты, если есть, только хуже.
 
да не работает
а к чему вопрос, если у Ва с в коде уже есть решение, которое нужно только раскомментировать
Код
Dim ich As Boolean

Private Sub CheckBox1_Click()
  If ich Then Exit Sub
  If CheckBox1 Then MsgBox "Ñòîèò"
End Sub

Private Sub UserForm_Initialize()
  ich = True
  CheckBox1 = Cells(1, 1) = 1
  ich = False
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ну это я такой вариант решил сделать. Вот и решил спросить, может есть какие-то другие стандартные средства при загрузке формы. Ну коли это лучшее решение, то тогда ладно.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
Страницы: 1
Наверх