Ajouter un délai lors de l'exécution du code à l'aide de VBA

Glen Alfaro 30 janvier 2023
  1. Exemple d’ajout de temps de retard dans VBA avec la commande wait
  2. Implémenter un schéma de mise à jour automatique à l’aide de la commande wait
Ajouter un délai lors de l'exécution du code à l'aide de VBA

Lorsqu’il s’agit de calculs et de processus complexes utilisant VBA, le programmeur doit garder à l’esprit que certains algorithmes sont trop lourds et nécessitent un certain temps pour être traités. Le problème survient lorsque le processus en cours est toujours en cours d’exécution, mais que le compilateur VBA passe ensuite au processus suivant. Dans ce cas, des débordements et des erreurs se produiraient.

Une application typique du délai est lorsqu’il s’agit d’outils de grattage Web. Le site Web doit être entièrement chargé avant de supprimer les données. Sinon, une erreur se produira. Une autre application de ceci est lorsque nous devons exécuter une macro régulièrement pendant une période définie.

Cet article vous montrera comment ajouter un délai à l’aide de la commande wait.

Syntaxe:

Application.Wait(Now + [delay time])

Où:

[delay time] Spécifie le temps de retard nécessaire.

Exemple d’ajout de temps de retard dans VBA avec la commande wait

Sub DelayMe()
'Print the current time
Debug.Print Now

'Delay for 10 seconds start here
Application.Wait(Now + TimeValue("00:00:10"))

'Print the current time
Debug.Print Now

End Sub

Production :

12/21/2021 4:41:25 PM 
12/21/2021 4:41:35 PM 

Implémenter un schéma de mise à jour automatique à l’aide de la commande wait

Le bloc de code ci-dessous illustrera la mise en œuvre de schémas de mise à jour automatique à l’aide de la commande wait. Il appellera la sous-routine GetTimeNow toutes les 10 secondes.

Sub AutoUpdate()

'Main loop where the code execution takes place 
Do

'Add a delay for every call
Application.Wait(Now + TimeValue("00:00:10"))
'Calls the GetTimeNow subroutine
Call GetTimeNow
Loop

End Sub

Sub GetTimeNow

'Print the time at the time of the call.
Debug.Print "The current time is: " & Now

End Sub

Production :

The current time is: 12/21/2021 4:59:30 PM
The current time is: 12/21/2021 4:59:48 PM
The current time is: 12/21/2021 5:00:01 PM
The current time is: 12/21/2021 5:00:16 PM