Ir ao conteúdo
  • Cadastre-se
DQUIRINO10

Contagem regressiva vba - form travando

Recommended Posts

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

Editado por DiF
Botão CODE <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Insira esta linha no início de seu programa:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Modifique o procedimento 'Regressiva':

Sub Regressiva()
    Do While Tempo > TimeValue("00:00:01") And Rodando = True
        Tempo = Tempo - TimeValue("00:00:01")
        Label1.Caption = Tempo
        DoEvents         ' Impede que o processo fique travado
        Call Sleep(1000) ' Dorme por 1000 milissegundos (= 1 segundo)
        Call Me.Repaint  ' Evita que os botões fiquem afundados o tempo todo ao clicar
    Loop
End Sub

Veja se funciona.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×