Categorias

Criando um timer em VBA

Para determinadas tarefas pode ser necessário que tenha que se esperar um tempo para continuar a execução da macro e até de um tempo de espera para o usuário responder a determinada questão. Para esse tipo de problema a solução é simular um timer via código.

Este código, simula um timer para execução de macros determinando um tempo de intervalo em segundos, para definir o tempo de intervalo, basta alterar a constante IntervaloSegundos no código.

Dim Alarme
Const IntervaloSegundos = 5 * 60 ' 5 minutos de intervalo
Sub Iniciar()
Alarme = Now + TimeSerial(0, 0, IntervaloSegundos)
Application.OnTime EarliestTime:=Alarme, procedure:="Macro1", schedule:=True
End Sub


Sub Macro1()
'As suas rotinas
MsgBox "Olá!!! voltarei pelas " & Format(Alarme, "hh:mm:ss"), vbInformation, "Timer em Vba"

Call Iniciar
End Sub


Sub Parar()
On Error Resume Next
Application.OnTime EarliestTime:=Alarme, procedure:="Macro1", schedule:=False
End Sub