1

Тема: Вывод на форму обратного отсчета времени

Господа, не хотел беспокоить, но видно самому не разобраться.
Необходимо на форме (на label) выводить посекундно время начиная с некоторого заданного значения до нуля. Когда время истечет, форму необходимо закрыть. Таймер должен запускаться командной кнопкой на той же форме. Пытаюсь делать это через Application.OnTime, но время на метке не изменяется ну и форма не закрывается. Нашел код подобной задачи для Excel и пытался адаптировать его для Word, но без результатно. Вот этот код:

Private Sub CommandButton1_Click()
minut = 0
secund = 3
vremya = TimeValue("00:" & minut & ":" & secund & "")
tmr
Application.OnTime Now + TimeValue("00:00:01"), "Module1.tmr"
End Sub


Это Module1

Public vremya As Date, minut As Variant, secund As Variant

Sub tmr()

UserForm1.Label1.Caption = Format(vremya, "nn:ss")
vremya = vremya - TimeValue("0:00:01")

If vremya > 0 Then
Application.OnTime Now + TimeValue("00:00:01"), "tmr"
Else
Unload UserForm1
End If
End Sub

И как, кстати, остановить этот таймер?

Заранее благодарен

2

Re: Вывод на форму обратного отсчета времени

Ошибся немного. Вот так выглядит код на кнопку:

Private Sub CommandButton1_Click()
minut = 0
secund = 3
vremya = TimeValue("00:" & minut & ":" & secund & "")
tmr

End Sub

И, наверное, на событие QueryClose для формы надо останавливать таймер?

3

Re: Вывод на форму обратного отсчета времени

Прикрепляю свой вариант:

Post's attachments

CountDown.doc 47 Кб, 11 скачиваний с 2012-09-13 

You don't have the permssions to download the attachments of this post.
Макросы под заказ и готовый пакет - mtdmacro.ru