Preciso de uma ajuda, sei bem pouco de VBA, mas estou tentando fazer um cronometro que faça contagem regressiva de um tempo predeterminado.
Mas quando a contagem inicia (clicando no botão Iniciar) o formulário trava e não consigo acionar os outros botões (Parar, Reiniciar, Zerar).
Alguém sabe o que está travando? Acho que é o “Application.Wait”, mas não consegui outra forma de dizer pra sub executar a cada 1 segundo.
Segue o código (arquivo em anexo):
Dim Tempo As Date
Dim Rodando As Boolean
Private Sub Iniciar_Click()
Rodando = True
Tempo = TimeValue("00:00:30")
Label1.Caption = Tempo
Call Regressiva
End Sub
Private Sub Parar_Click()
Rodando = False
Call Regressiva
End Sub
Private Sub Reiniciar_Click()
Rodando = True
Tempo = Tempo
Call Regressiva
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub Zerar_Click()
Rodando = False
Tempo = TimeValue("00:00:30")
Label1.Caption = Tempo
End Sub
Sub Regressiva()
If Rodando = True Then
Do While Tempo > TimeValue("00:00:01")
Application.Wait Now + TimeValue("00:00:01")
Tempo = Tempo - TimeValue("00:00:01")
Label1.Caption = Tempo
Loop
Else
Tempo = Tempo
End If
End Sub
teste.zip