Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 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
Читают тему (гостей: 1)
Наверх