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