Обработка click'ов в немодальном окне

Программирование на Visual Basic for Applications
Sem
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2005 (Сб) 22:22
Откуда: Ижевск

Обработка click'ов в немодальном окне

Сообщение Sem » 09.04.2005 (Сб) 22:44

Столкнулся со следующей проблемой. Вывожу в Excel'е не модальное окно, т.к. при этом нужно показать ProgressBar, но не могу зафиксировать нажатие на кнопку в этой форме по событию Click(). А кнопка "Отменить" крайне нужна, потому что работа программы может быть длительной.
Буду признателен если кто-нибудь подскажет решение этой проблемы.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 10.04.2005 (Вс) 7:29

Я делал так:
Объявлял в коде модуля переменную UserForm
в самом макросе загружал форму и показывал,
дальше делал длительные опрерации,
время от времени изменяя значение прогрессбара на формеи вставив в цикл DoEvents. На форме кнопка, которая по-моему изменяла глобальную переменную и по изменению этой переменной и завершалась работа макроса.

Код дать не могу :( т.к. весь у заказчика.
Если не получиться пиши, найду и пришлю!
Удачи

Sem
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2005 (Сб) 22:22
Откуда: Ижевск

Сообщение Sem » 10.04.2005 (Вс) 11:27

Если я правильно понял, то в форме в процедуре кнопки отмены CommandButton_Click() устанавливаем какой-либо глобальный флаг. Затем в каком-либо долгом цикле самой программы вставляем DoEvents и сразу проверку этого флага и по его изменению выход из макроса? Пробовал так сделать, но ничего не происходит и флаг не меняется. :(

Sem
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2005 (Сб) 22:22
Откуда: Ижевск

Сообщение Sem » 10.04.2005 (Вс) 15:21

Все заработало. Оказывается глобальная переменная, определенная в модуле с кодом программы недоступна из формы. Пришлось из формы вызывать процедуру, лежащую в главном модуле, которая в свою очередь меняет значение этой переменной. Вот так все запущено :)

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 10.04.2005 (Вс) 21:02

Да Public or Global объяви и все будет доступно

Sem
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2005 (Сб) 22:22
Откуда: Ижевск

Сообщение Sem » 10.04.2005 (Вс) 22:37

Спасибо за советы. Иначе я еще долго бы рылся в хелпе VBA с его немного кривым поиском.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList