Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 21:39   #1
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию Как остановить счётчик

Здравствуйте уважаемые форумчане!
собственно как остановить счетчик? если форму уже закрыли не дожидаясь окончания времени....

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:15"), "KillTheForm"
UserForm2.Show
End Sub

все бы ничего но экран "подмигивает" когда по окончанию времени срабатывает KillTheForm

Private Sub KillTheForm()
Unload UserForm2 ' пробовал и выгружать
'UserForm2.Hide ' и скрывать, все рано экран моргает
End Sub
BDA2011 вне форума Ответить с цитированием
Старый 16.10.2011, 21:42   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Как-то было уже на форуме
Попробуйте поискать по слову таймер
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 16.10.2011, 22:05   #3
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

нужна глобальная переменная, напр.,
Код:
public KillTheFormTime
Код:
Private Sub Workbook_Open()
KillTheFormTime=Now + TimeValue("00:00:15")
Application.OnTime KillTheFormTime, "KillTheForm"
UserForm2.Show
End Sub
и потом, если форму уже закрыли, отменяешь ранее назначенное:
Код:
Application.OnTime KillTheFormTime, "KillTheForm",,false
аналитика вне форума Ответить с цитированием
Старый 16.10.2011, 23:14   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Привет, умнички! Саш, а чего бы не на UserForm_QueryClose? Тогда и переменная не нать.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 16.10.2011, 23:40   #5
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

как так?
можно конечно без переменной обойтись - в Tag чей-нибудь "засунуть", но время назначенного задания нужно куда-то сохранить-то, чтобы его потом можно было чик-чик...
аналитика вне форума Ответить с цитированием
Старый 17.10.2011, 00:21   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

процедуру Application.OnTime Now + TimeValue("00:00:15"), "KillTheForm" запускать в самой форме на activate, а по событию выгрузки формы ontime now()... false
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 17.10.2011 в 00:29.
kuklp вне форума Ответить с цитированием
Старый 17.10.2011, 00:49   #7
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

Спасибо всем ответившим!
вот здесь тоже самое http://www.programmersforum.ru/showt...E0%E9%EC%E5%F0 предлагается, но в моем случае не работает
короче чето я малость запутался... того что я хочу не получается
поясню чего я хочу в принципе: при открытии книги вылазит форма (UserForm2) (ну типа заставки) на 5 сек, если не трогать сама закроется спустя время, можно принудительно кликнуть на ней она закроется но тогда нужно остановить таймер что бы экран не мерцал... так же есть кнопочка в другой форме (UserForm1) для для показа этой же формы (UserForm2) потому что на ней есть две нужные кнопки, здесь уже без таймера сам пользователь открыл сам пусть и закрывает.
BDA2011 вне форума Ответить с цитированием
Старый 17.10.2011, 00:53   #8
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

всего этого я добился но не знаю как остановить таймер соответственно что бы экран не мерцал
BDA2011 вне форума Ответить с цитированием
Старый 17.10.2011, 08:52   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Сеража,
OnTime удавалось остановить только в двух случаях
1. когда из самой OnTime-процедцры не производить следующий вызов самой себя через OnTime
2. отменить загруженную OnTime только если знаешь на какое время она назначена. одного False там мало.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.10.2011, 09:25   #10
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Тогда да. Как Саня предложил.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить Excel kzld Microsoft Office Excel 5 07.11.2010 13:33
Как остановить Idhttp? Anfall Работа с сетью в Delphi 1 17.10.2010 19:53
Как остановить поток? pa6kevi4 Общие вопросы .NET 5 04.06.2010 17:28
Как остановить процесс Volkogriz Общие вопросы Delphi 1 15.01.2009 10:40
Как остановить поток? Никки Win Api 3 06.12.2007 22:04