VBA: Marquer une pause


Vous avez besoin de marquer une pause dans votre macro pour une raison ou une autre? C'est bien sûr possible et le code nécessaire est très simple car VBA contient une méthode spécifique pour cela. Il s'agit de la méthode .Wait de la classe Application.

Code VBA pour marquer une pause dans l'exécution d'une macro

L'utilisation de la méthode .Wait ne requiert que l'indication de la durée de la pause. Pour marquer une pause d'une seconde, le code VBA sera le suivant:

Application.Wait(Now + TimeValue("00:00:01"))

So vous voulez attendre une minute, le code sera:

Application.Wait(Now + TimeValue("00:01:00"))

… et ainsi de suite.

Ceci est un cas simple qui suspend l'exécution de la macro. Cela peut être utile, par exemple si vous copiez des fichiers externes volumineux et vous ne voulez pas que la macro aille "trop vite".

Explications concernant le code VBA

Si vous voulez savoir, comment cela fonctionne, voici le détail du code. La méthode .Wait suspend l'exécution du code VBA jusqu'à un moment précis dans le temps. Par exemple, jusqu'à 14h32 et 15 secondes. Pour pouvoir utiliser un délai plutôt qu'une heure précise, on fait appel à deux fonctions VBA:

  1. fonction Now() qui nous indique l'heure actuelle
  2. fonction TimeValue() qui transforme un texte (ici = indication du délai) en temps

On détermine alors l'heure précise à laquelle le code atteint l'endroit de l'exécution de la pause et on y ajoute une durée souhaitée.

Illustration: on veut ajouter une pause de 2 minutes. On exécute la macro et la pause se déclenche à 14:25:18 ( Now() ). On ajoute donc à cette heure précise une durée de 2 minutes ( + TimeValue("00:02:00") ) ce qui indiquera à la méthode .Wait le temps précis du redémarrage du code – 14:27:18. C'est-à-dire exactement 2 minutes…

Exemple d'utilisation de la pause en VBA

Voici un exemple qui vous vous montre comment cela fonctionne. Il suffit d'indiquer la durée de la pause et la macro va vous indiquer dans un MessageBox l'heure à laquelle la pause a été déclenchée et à quelle heure l'exécution du code a reprise.

La page officielle de Microsoft concernant la méthode .Wait.

 

5 0

Pourrait vous intéresser

Partagez cette page...
Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on RedditShare on TumblrDigg thisEmail this to someone

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.