Você já conhece a função Timer no VBA? Quer aprender como fazer contagem e fazer o VBA esperar com essa função?
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala, Impressionadores! Nessa aula você vai aprender como criar um contador no VBA e como fazer o VBA esperar!
O contador no VBA funciona de forma que se possa contar o tempo de execução de um código. Dessa forma, você vai conseguir analisar quanto tempo demora para executar o código.
Vamos ver também como fazer uma espera no VBA. Ou seja, como pausar no VBA para esperar um determinado tempo.
E aí, curioso? Vem que te mostramos!
Como criar um contador no VBA?
A ideia aqui é, através de uma função específica nativa do VBA, a função Timer, marcar os tempos inicial, e final.
A função Timer vai marcar, em segundos, o momento inicial do código, e o momento final.
Com os pontos iniciais e finais do código, bastaria ver quantos segundos se passaram entre os dois momentos.
O código abaixo fazer o que estamos esperando, que é programar a criação de contador no VBA. Acompanhe com a gente:
Sub vbaTimerTempoTotal()
Dim tempoIni As Double, tempoTotal As Double
Dim i As Long
tempoIni = Timer
'For i = 1 To 100000
' Cells(i, 1).Value = "Teste"
'Next i
Range("A1:A100000").Value = "Teste"
tempoTotal = Timer - tempoIni
MsgBox "Concluído em " & tempoTotal & " segundos!"
End Sub
Comentários a respeito do código:
- Inicialmente dimensionar:
- tempoIni e tempoTotal como números do tipo Double (com casas decimais)
- i como um número do tipo Long (número inteiro grande)
- tempoIni vai receber, em segundos, o momento exato que o código começa a funcionar (passados desde meia noite)
- Preencher, com o texto “Teste”, da célula A1 até a célula A100000
- tempoTotal vai receber, em segundos, a subtração entre a função Timer e a variável tempoIni, que vai dar em segundos, de fato, a duração do código. Ela marcará o momento final do código, em segundos
- Fazer aparecer uma caixa de mensagem que vai informar em quantos segundos o código foi concluído
- Se encerra o código com timer no VBA
Inicialmente o código, usando a estrutura de repetição do tipo For, resultava em:
Com uma alternativa mais rápida identificada, resulta agora em:
Essa “forma” de estruturar o código, marcando o seu tempo de duração, faz com que você teste outras soluções para realizar o mesmo feito.
Assim, pode encontrar formas mais rápidas de realizar tais ações desejadas, com seu código.
E como fazer o VBA esperar?
A ideia agora, é através da mesma função mostrada anteriormente, a função Timer, fazer o VBA esperar um tempo, para assim continuar.
Existem algumas situações que precisamos esperar alguns segundos, até algo estar pronto para o código desempenhar suas ações.
O código apresentado abaixo pretende mostrar um exemplo de código de pausa no VBA. Observe:
Sub vbaTimerPausa()
Dim tempoIni As Double, tempoPausa As Double
tempoPausa = 2 'segundos
MsgBox ("Clique em Ok para iniciar os " & tempoPausa & " segundos de pausa.")
tempoIni = Timer
Do While Timer < tempoIni + tempoPausa
DoEvents
Loop
MsgBox "Terminou a pausa de " & tempoPausa & " segundos!"
End Sub
Comentários a respeito do código:
- Inicialmente dimensionar tempoIni e tempoPausa como números do tipo Double (com casas decimais)
- Armazenar na variável tempoPausa o valor de número 2
- Fazer aparecer uma caixa de mensagem que vai informar que vai começar o tempo de pausa do código, da quantidade de segundos armazenada na variável tempoPausa
- tempoIni vai receber, em segundos, o momento exato que o código começa a funcionar (passados desde meia noite), de acordo com a função Timer VBA
- Vamos abrir uma estrutura de repetição do tipo Do While que vai funcionar em looping deixando o Excel fazer eventos, enquanto a função Timer for menor do que tempoIni + tempoPausa. Enquanto a função Timer retornar um valor menor do que o tempo de pausa, nada será feito.
- Quando a função Timer retornar um valor em segundos maior do que a duração do tempoPausa, uma MsgBox vai aparecer informando que “Terminou a pausa de ” & tempoPausa & ” segundos!”
- Se encerra o código de como pausar no VBA
Conclusão de como colocar timer no VBA
Nessa aula você aprendeu criar contador no VBA! Com a função VBA Timer, nativa do VBA, que te ajuda a montar esse contador!
Também viu como fazer o VBA esperar por um tempo determinado por você! Em algumas situações você pode precisar inserir isso nos seus códigos.
Valeu, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.