Exécuter la macro toutes les 2 heures seulement si l'exécution précédente est terminée

J'ai configuré une macro pour l'exécuter toutes les 2 heures en utilisant:

Application.OnTime (TimeSerial(6, 0, 0)), "AutoUpdate" 

Cependant, il y a un problème parfois, comme d'habitude, la macro se renversera sur 2 heures et tentera de tourner à nouveau alors que la macro précédente est toujours en cours d'exécution, ce qui l'entraîne à se bloquer. Est-ce que quelqu'un sait d'une manière de dire "si le précédent" AutoUpdate "est toujours en cours d'exécution, ne lancez-vous pas" AutoUpdate "?"

Définissez une variable globale de type Boolean:

 Dim gRunning as Boolean 

Dans votre sous, ajoutez le code suivant:

 If gRunning = True Then Exit Sub End If gRunning = True [...] gRunning = False [...] If gRunning = True Then Exit Sub End If gRunning = True [...] gRunning = False