Fonction d'attente VBA - Comment utiliser la méthode d'attente Excel VBA?

Table des matières

Fonction d'attente Excel VBA

VBA Wait est une fonction intégrée utilisée pour suspendre l'exécution du code pendant une durée spécifiée, elle est très similaire à ce que nous faisons dans une commande de veille et pour mettre en pause un code que nous utilisons la méthode application.wait.

Certains codes nécessitent un certain temps avant de passer à la ligne de code suivante en raison d'autres tâches à accomplir. Dans ces cas, nous devons arrêter l'exécution du code et faire une pause pendant un certain temps, puis procéder à l'exécution. Nous pouvons suspendre le code à exécuter de deux manières, la première est la méthode «Sleep» et la seconde est la méthode «Wait». Dans notre article précédent, nous avons discuté de la méthode «VBA Sleep» pour suspendre le code VBA.

«Attendez», comme son nom l'indique, il contiendra le code de macro à exécuter dans un délai spécifié. En utilisant cette méthode, nous devons spécifier l'heure à laquelle notre code doit s'arrêter. Nous verrons des exemples ensuite.

La syntaxe de la fonction WAIT est la suivante.

Nous devons mentionner la durée pendant laquelle notre code doit s'arrêter. Comme vous pouvez le voir à la fin, il dit booléen. Cela signifie qu'il renvoie le résultat sous forme de valeurs booléennes, c'est-à-dire TRUE ou FALSE.

Jusqu'à ce que l'heure spécifiée arrive, il dit FALSE, et le moment spécifié est arrivé, il renvoie TRUE.

Ceci est différent de la fonction SLEEP car WAIT est une fonction intégrée où SLEEP est une fonction Windows. Avant d'accéder à la fonction SLEEP, nous devons mentionner le code ci-dessous en haut du module. Mais WAIT ne l'exige pas.

Code:

#Si VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' For 32 Bit Systems End If

Exemples d'utilisation de la fonction d'attente Excel VBA

Exemple 1

Supposons que vous travaillez dans un excellent milieu de journée à 14:30:00 et que vous voulez que votre code soit mis en pause jusqu'à ce que l'heure devienne 14:40:00. Vous pouvez utiliser le code ci-dessous.

Code:

Sous Wait_Example1 () Application.Wait "14:40:00" End Sub

Le code empêchera votre Excel de fonctionner jusqu'à ce que l'heure atteigne 14:40:00 dans votre système d'exploitation. Offrir de tels horaires est dangereux car nous ne travaillons pas toujours à partir de 14h30. Cela ne cesse de varier.

Disons que chaque fois que vous exécutez le code. Vous voulez attendre 2 minutes, comment faites-vous référence à cela dans votre code?

Ainsi, nous pouvons utiliser la fonction VBA NOW avec la fonction TIME VALUE pour entrer l'heure spécifiée à partir de l'heure actuelle.

Juste pour vous rappeler, la fonction NOW () renvoie la date et l'heure actuelles selon votre système informatique. La fonction TIMEVALUE représente l'heure de 00:00:00 à 23:59:59 soit 23:59:59 PM au format 24 heures. Il convertit la valeur de chaîne en valeur de temps.

Par exemple NOW () + TIMEVALUE (00:02:30) signifie l'heure actuelle + 2 min 30 sec.

Si l'heure actuelle est 14:25:30, alors il devient 14:28:00.

Pour arrêter ou interrompre l'exécution de votre code de l'heure actuelle aux 10 minutes suivantes, vous pouvez utiliser le code ci-dessous.

Code:

Sous Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub

Il est important d'utiliser une fonction NOW () pour une pause précise. Sinon, il y a des chances que votre classeur Excel soit suspendu jusqu'à minuit. Cependant, nous pouvons sortir de la méthode de pause à tout moment en appuyant sur la touche Echap ou sur la touche Break.

Exemple # 2

Attendez 10 secondes à chaque exécution de la boucle

La méthode wait est bien utilisée avec les boucles. Dans certaines situations, vous devrez peut-être attendre 10 secondes à chaque exécution de la boucle. Par exemple, regardez les données ci-dessous.

Pour calculer Profit = (Sales - Cost), vous voulez créer une boucle et après chaque boucle, vous voulez attendre 10 secondes pour vérifier si le résultat est exact ou non. Le code ci-dessous fera cela.

Code:

Sous Wait_Example3 () Dim k As Integer For k = 2 To 9 Cells (k, 4) .Value = Cells (k, 2) - Cells (k, 3) Application.Wait (Now () + TimeValue ("00:00) : 10 ")) Suivant k End Sub

Ce code calculera la colonne de profit ligne par ligne. Une fois la première ligne terminée, il attendra 10 secondes avant de calculer la ligne suivante.

Veille VBA contre attente VBA

VBA SLEEP ATTENDRE VBA
Ce n'est pas une fonction intégrée VBA, nécessite un code spécial pour accéder à cette fonction. C'est une fonction intégrée VBA, ne nécessite aucun code spécial pour accéder à cette fonction.
Le sommeil nécessite des millisecondes comme laps de temps. Attendre nécessite un laps de temps régulier.
Nous pouvons retarder le code en millisecondes. Nous ne pouvons retarder que quelques secondes entières.

Articles intéressants...