VBA – Esperar, Atrasar, Criar um Cronômetro Durante a Execução do Código

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 30, 2023

Esperar ou Atrasar no VBA

Há muitos casos em que um cronômetro pode ser útil no Excel. Aqui está um método para tentar:

Sub MeuCronometro()
Application.Wait Now + TimeValue("00:00:05")
MsgBox ("5 segundos")
End Sub
add delay to vba

vba timerAlguns usos de um cronômetro no Excel VBA são pausar o código e medir o tempo decorrido. A seguir, você será direcionado para os respectivos locais onde publiquei um exemplo de cada uso:

1. Pausar a execução do código por um período de tempo desejado com Application.Wait (simulando um cronômetro)
link: Ocultar o Excel
2. Medir o tempo decorrido com um cronômetro no VBA

Se estiver procurando comparar um código reescrito ou debater métodos “mais rápidos” no VBA, você poderá usar o timer interno do VBA. Ao definir uma variável igual ao timer no início do código e subtraí-la do timer no final, você terá uma boa estimativa do tempo de execução de um trecho de código.

O desempenho pode ser afetado por outros programas em execução ou que tentam ser executados enquanto a macro está ativa, entre outros fatores.

O exemplo a seguir foi usado para ver quanto tempo levaria para escrever a palavra “teste” na célula A1 da Planilha1 meio milhão de vezes. Levou 21 segundos em minha máquina.


Sub Referencia()

Dim Contar As Long
Dim Referencia As Double

Referencia = Timer

'Início do código para teste

For Contar = 1 To 500000
 Planilha1.Cells(1, 1) = "test"
Next Contar

'Fim do código para teste

MsgBox Timer - Referencia

End Sub

Se o seu código estiver sendo executado lentamente, tente acelerá-lo desativando a atualização da tela.

Codificação VBA facilitada

Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!

alt text

Saiba mais!

Esperar ou Atrasar no Access VBA

Você também pode usar os métodos acima no Access VBA. Por exemplo, talvez queira saber quanto tempo leva para percorrer um conjunto de registros.

Sub PercorrerRegistros()
    Dim Contar As Long
    Dim Referencia As Double
    Referencia = Timer
'Início do código para teste
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("tblFaturas", dbOpenDynaset)
    With rst
       Do Until .EOF = True
          .MoveNext
       Loop
    End With
'Fim do código para teste
 MsgBox "Levou " & Timer - Referencia & " segundos para concluir"
End Sub

tempor decorrido access

<<Retornar aos exemplos de VBA

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA