Interrompre l'exécution du code VBA
VBA Pause est utilisé pour suspendre le code de son exécution pendant un laps de temps spécifié et pour suspendre un code dans VBA, nous utilisons la méthode application.wait.
Lorsque nous construisons de grands projets VBA après avoir effectué quelque chose, nous pouvons avoir besoin d'attendre un certain temps pour effectuer d'autres tâches. Dans de tels scénarios, comment suspendre le code de macro pour effectuer notre tâche? Nous pouvons suspendre le code VBA pendant une période de temps spécifiée en utilisant deux fonctions, et ces fonctions sont «Attendre» et «Veille».

Comment mettre en pause le code en utilisant la méthode d'attente?
«Attendre» est la fonction que nous utilisons dans VBA pour maintenir la macro en cours d'exécution pendant une durée spécifique. En appliquant cette fonction, nous devons mentionner jusqu'à quelle heure notre code doit attendre.
Par exemple, si vous exécutez le code à 13:00:00, si vous indiquez l'heure comme «13:15:00», alors la macro sera exécutée pendant 15 minutes.
Maintenant, regardez l'argument de la fonction WAIT dans VBA.

Dans l'argument temporel, nous devons mentionner à quelle heure notre code doit s'arrêter ou attendre.
Par exemple, regardez le code VBA ci-dessous.
Code:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Vers VBA "End Sub

Rappelez-vous, lors de l'exécution de ce code, mon heure système est 13:00:00. Dès que j'exécute le code, il exécutera les deux premières lignes ie
Plage ("A1"). Valeur = "Bonjour" & Plage ("A2"). Valeur = "Bienvenue"
Mais si vous regardez la ligne suivante, elle dit Application.Wait ("13:15:00"), donc après avoir exécuté ces tâches de lignes, ma macro sera mise en pause pendant 15 minutes, c'est-à-dire à partir de 13:00:00, elle attendra que l'heure de mon système atteigne 13:15:01.
Une fois que l'heure de mon système atteint cette heure, il exécutera les lignes de code restantes.
Plage ("A3"). Valeur = "Vers VBA"
Cependant, ce n'est pas la meilleure façon de pratiquer le code de pause. Disons que vous exécutez le code à des moments différents, puis que nous devons utiliser la fonction NOW VBA avec la fonction TIME VALUE.
La fonction renvoie maintenant la date et l'heure actuelles selon le système sur lequel nous travaillons.
La fonction TIME Value contient l'heure de 00:00:00 à 23:59:29.
Ok, supposons que nous devions suspendre le code pendant 10 minutes chaque fois que nous exécutons le code, nous pouvons alors utiliser le code ci-dessous.
Code:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Value =" To VBA "End Sub

Ceci est similaire au code précédent, mais la seule différence est que nous avons ajouté la fonction NOW & TIME VALUE.
Chaque fois que nous exécutons ce code, il maintiendra ou suspendra l'exécution pendant 10 minutes.
Comment mettre en pause le code VBA à l'aide de la méthode de mise en veille?
Le sommeil est une fonction compliquée dans VBA car ce n'est pas une fonction intégrée. Comme il ne s'agit pas d'un élément intégré afin de le rendre disponible, nous devons ajouter le code ci-dessous en haut de notre module.
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) #End If' For 32 Bit Systems
Il vous suffit de copier le code ci-dessus et de le coller en haut du module.

La raison pour laquelle nous devons ajouter le code ci-dessus parce que SLEEP est une fonction VBA présentée dans les fichiers DLL Windows, nous devons donc déclarer la nomenclature avant de démarrer la sous-procédure.
Ok, regardons maintenant l'exemple de la fonction SLEEP.
Code:
Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

Tout d'abord, nous avons déclaré deux variables comme String.
Dim StartTime As String Dim EndTime As String
Ensuite, nous avons affecté la fonction TIME excel à la variable StartTime. La fonction TIME renvoie l'heure actuelle selon le système.
StartTime = Heure
Ensuite, nous avons attribué la même chose à afficher dans la boîte de message.
MsgBox StartTime
Ensuite, j'ai appliqué la fonction SLEEP en tant que Sleep (10000).
Ici, 10000 correspond à des millisecondes, ce qui équivaut à 10 secondes en VBA.
Puis, enfin, j'ai assigné une autre fonction TIME à la variable EndTime .
Maintenant encore, j'ai écrit un code pour montrer l'heure.
EndTime = Heure
Cela montrera la différence entre l'heure de début et l'heure de fin.
Maintenant, je vais exécuter le code et voir quelle est l'heure de début.

Lorsque j'exécute le code, mon heure système est 13:40:48, et maintenant mon code dormira pendant 10 secondes. En fin de compte, mon temps est le suivant.

Ainsi, comme ceci, nous pouvons suspendre le code de son exécution pendant un laps de temps spécifié.