Fonction de veille VBA

La fonction de veille dans VBA est en fait une fonction Windows. Il est similaire à la fonction d'attente dans VBA. Il est utilisé pour ralentir ou mettre en pause ou nous pouvons dire arrêter le fonctionnement d'un code spécifique par un certain temps spécifié. La fonction de veille doit être appelée dans VBA tout en la déclarant dans le code. Comment nous faisons cela, nous allons apprendre dans le sujet d'aujourd'hui.

Comme expliqué ci-dessus, VBA Sleep est une fonction Windows et elle est présente dans la base de données noyau de Windows. La méthode de déclaration et d'appel de la fonction de veille dans VBA est différente pour les systèmes d'exploitation 32 bits et les systèmes d'exploitation 64 bits. Il s'agit essentiellement d'une fonction API Windows.

La syntaxe pour utiliser la fonction Veille VBA est la suivante:

Sommeil (temps en secondes mili)

Donc, si nous devons ralentir ou arrêter le code pendant 1 seconde, nous devons écrire le code comme suit:

 Sleep 1000 

1000 est le mili seconde qui équivaut à 1 seconde et cela ralentira le code pendant 1 sec. Si nous voulons ralentir le code pendant 5 secondes, le code sera:

 Sleep 5000 

La déclaration de la fonction sommeil est la suivante:

 #If VBA7 Alors 'Excel 2010 ou ultérieur Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 ou antérieur Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If 
Remarque: Avant d'utiliser la fonction sommeil, il y a une chose que nous devons garder à l'esprit. Nous devons utiliser cette fonction dans les modules, pas dans les objets d'Excel. Pour utiliser VBA pour vous assurer que l'onglet du développeur est activé à partir de l'onglet fichiers dans la section des options.

Comment utiliser la fonction de veille Excel VBA?

Nous allons apprendre à utiliser une fonction VBA Sleep avec quelques exemples dans Excel.

Vous pouvez télécharger ce modèle Excel de sommeil VBA ici - Modèle Excel de sommeil VBA

Fonction de veille VBA - Exemple # 1

Ce que nous allons faire dans cet exemple, c'est que nous afficherons un message à l'utilisateur que la macro s'arrêtera pendant cinq secondes. Et exactement après cinq secondes, nous voulons qu'un deuxième message apparaisse, indiquant que la macro a repris.

Suivez les étapes ci-dessous pour utiliser la fonction de veille dans Excel VBA:

Étape 1: accédez à l'onglet Développeur et cliquez sur Visual Basic pour ouvrir l'éditeur VB.

Étape 2: Une fois l'éditeur VB ouvert, cliquez sur l'onglet Insertion puis sur les modules pour insérer un nouveau module.

Étape 3: utilisez maintenant l'instruction de déclaration pour utiliser la fonction sleep. Comme j'utilise le système d'exploitation Windows 64 bits, j'utiliserai la déclaration pour le même.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Étape 4: déclarez maintenant la sous-fonction pour commencer à écrire le code.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Étape 5: utilisez la fonction Mgsbox pour afficher le message indiquant que la macro va être suspendue pendant cinq secondes.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va être suspendu pendant cinq secondes" End Sub 

Étape 6: Utilisez la fonction Veille pour suspendre la macro pendant cinq secondes.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va être suspendu pendant cinq secondes" Sleep 5000 End Sub 

Étape 7: Utilisez maintenant la fonction msgbox pour afficher le message indiquant que la macro a été reprise.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va être mis en pause pendant cinq secondes La macro" Sleep 5000 MsgBox "a été reprise" End Sub 

Étape 8: Exécutez le code à partir du bouton Exécuter fourni ou appuyez sur F5 pour voir le résultat. Nous voyons que le premier message est affiché.

Étape 9: Une fois que nous avons cliqué sur OK et attendu cinq secondes, nous voyons un autre message.

Il y eut une pause de cinq secondes entre les deux messages.

Fonction de veille VBA - Exemple # 2

Maintenant, ce que nous allons faire dans un autre exemple, c'est que j'ai quatre variables A, B, C et D. Premièrement, je veux ajouter la valeur de A et B et l'afficher et après 5 secondes, je veux afficher la valeur de l'ajout de A, B, C et D.

Suivez les étapes ci-dessous pour utiliser la fonction de veille dans Excel VBA:

Étape 1: accédez à l'onglet Développeur et cliquez sur Visual Basic pour ouvrir l'éditeur VB.

Étape 2: Une fois l'éditeur VB ouvert, cliquez sur l'onglet Insertion puis sur les modules pour insérer un nouveau module.

Étape 3: utilisez maintenant l'instruction de déclaration pour utiliser la fonction sleep. Comme j'utilise le système d'exploitation Windows 64 bits, j'utiliserai la déclaration pour le même.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Étape 4: déclarez maintenant la sous-fonction pour commencer à écrire le code.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Étape 5: Déclarez six variables A, B, C, D, X et Y pour stocker les valeurs.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer End Sub 

Étape 6: attribuer des valeurs aléatoires à A, B, C et D.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer A = 10 B = 15 C = 20 D = 25 End Sub 

Étape 7: Stockez la valeur de A + B dans X.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Étape 8: Affichez la valeur de X.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Étape 9: Utilisez maintenant la fonction sommeil pour faire une pause de cinq secondes.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Étape 10: Maintenant, dans la variable Y, stockez la valeur de X + C + D et affichez-la.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y As Integer A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Étape 11: Exécutez le code ci-dessus à partir du bouton d'exécution fourni ou en appuyant sur la touche F5 et voyez le résultat. Nous voyons que le premier message est affiché comme.

Étape 12: Appuyez sur OK et la macro attend cinq secondes et affiche le résultat suivant.

Fonction de veille VBA - Exemple # 3

Dans cet exemple, nous voulons renommer deux feuilles de calcul feuille 1 et feuille 2 respectivement Anand et Aran. Mais la durée entre les deux devrait être de cinq secondes. Fondamentalement, nous voulons que la macro se mette en pause après avoir renommé la feuille 1, puis renommer la feuille 2. Actuellement, les deux feuilles sont nommées comme suit:

Suivez les étapes ci-dessous pour utiliser la fonction de veille dans Excel VBA:

Étape 1: accédez à l'onglet Développeur et cliquez sur Visual Basic pour ouvrir l'éditeur VB.

Étape 2: Une fois l'éditeur VB ouvert, cliquez sur l'onglet Insertion puis sur les modules pour insérer un nouveau module.

Étape 3: utilisez maintenant l'instruction de déclaration pour utiliser la fonction sleep. Comme j'utilise le système d'exploitation Windows 64 bits, j'utiliserai la déclaration pour le même.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Étape 4: déclarez maintenant la sous-fonction pour commencer à écrire le code.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Étape 5: Activez la feuille de calcul 1 et renommez-la par le code suivant:

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Activate Worksheets ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 renommé" End Sub 

Étape 6: Utilisez maintenant la fonction de veille pour utiliser le délai pendant cinq secondes.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Activate Worksheets ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 renommé" Sleep 5000 End Sub 

Étape 7: Renommez maintenant la feuille 2 par le code suivant.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Activate Worksheets ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 renommé" Sleep 5000 Worksheets (" Sheet2 "). Activer les feuilles de calcul (" Sheet2 "). Name =" Aran "MsgBox" Sheet 2 renommé "End Sub 

Étape 8: Maintenant, exécutez le code et nous voyons que le premier message s'affiche.

De plus, nous pouvons vérifier que la feuille 1 est renommée.

Étape 9: Appuyez sur ok et attendez cinq secondes pour que le message suivant et la deuxième feuille soient renommés.

La deuxième feuille est également renommée.

Choses dont il faut se rappeler

  • VBA Sleep est une fonction de fenêtre, donc pour l'utiliser, nous devons utiliser des instructions de déclaration.
  • Il existe différentes instructions de déclaration pour différents types de systèmes d'exploitation.
  • Le simple fait d'utiliser VBA Sleep fige la macro pour la durée indiquée.
  • Le paramètre de temps donné à la fonction de veille VBA est en millisecondes.

Articles recommandés

Ceci est un guide de la fonction de veille VBA. Ici, nous discutons de l'utilisation de la fonction de veille Excel VBA avec des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Fonction VBA VLOOKUP
  2. Fonction DCOUNT dans Excel
  3. Collage de copie VBA
  4. Fonction COMBIN dans Excel

Catégorie: