Comment utiliser la Do While Loop en VBA ?
VBA Do while est une boucle dans laquelle vous devez spécifier une condition et cette condition doit rester vraie pour que la boucle s’exécute. En termes simples, d’abord, il vérifie que la condition que vous avez spécifiée est vraie ou non et si cette condition est vraie, il exécute la boucle, sinon rien.
À chaque itération, il teste la condition et n’exécute qu’ensuite l’instruction. Imaginez que vous souhaitiez ajouter des feuilles de calcul dans Excel alors que le compte complet des feuilles de calcul est de 12 ou moins. Dans ce cas, vous pouvez utiliser la boucle do-while pour écrire ce code.
Syntaxe
Voici la syntaxe du VBA pour chaque boucle suivante.
Do While Condition
[statements]
Loop
- Condition : C’est la condition que vous spécifiez, et cette condition doit être vraie pour exécuter la boucle.
- Instruction : la ou les lignes de code sur lesquelles vous souhaitez que la boucle Do While exécute la condition est vraie.
- Boucle : c’est l’instruction de fin d’une itération de la boucle et indique à VBA de revenir en arrière pour tester à nouveau la condition.
Exemple pour comprendre la boucle DO While
Pour comprendre Do While Loop, écrivons un code pour ajouter des feuilles de calcul dans un classeur alors que le nombre total de feuilles de calcul est inférieur à douze. Vous n’avez pas besoin d’indiquer à VBA le nombre de feuilles à ajouter et vous aurez toujours un total de 12 feuilles à chaque fois que vous exécuterez ce code.
Utilisez les étapes suivantes :
- Tout d’abord, vous devez taper le clavier « Do While ».
- Ensuite, vous devez écrire une condition qui peut vérifier si le nombre total de feuilles de calcul dans le classeur est inférieur à douze.
- Pour cela, vous devez utiliser le code ci-dessous, qui compte le nombre total de feuilles de calcul, puis le compare au nombre douze.
- Ensuite, vous devez écrire le code pour ajouter une feuille de calcul. Ce code s’exécutera lorsque la condition que vous avez spécifiée est vraie.
- Et, à la fin, tapez le mot-clé « Loop » pour terminer le code.
Voici le code complet que vous venez d’écrire :
Sub vba_do_while_loop()
Do While ActiveWorkbook.Worksheets.Count < 12
Sheets.Add
Loop
End Sub
Maintenant, laissez-moi vous expliquer comment fonctionne ce code : la condition que vous avez spécifiée vérifie le nombre total de feuilles de calcul dans le classeur, puis vous avez un opérateur inférieur à qui vérifie le nombre de feuilles de calcul par rapport à douze.
Lorsque le nombre de feuilles de calcul est inférieur à douze, la boucle continue de s’exécuter et continue d’ajouter de nouvelles feuilles de calcul, mais une fois que le nombre de feuilles de calcul atteindra douze, la boucle s’arrêtera.
C’est en termes simples que la boucle continuera à fonctionner tant que le nombre de feuilles de calcul sera inférieur à douze.
Voici le truc, avec le code que vous venez d’écrire, vous n’avez pas besoin de spécifier le nombre de feuilles de calcul que vous souhaitez ajouter, mais si vous passez à la boucle suivante, vous devez spécifier le nombre de feuilles de calcul que vous voulez ajouter.
Faire une boucle pendant
Do Loop While est une version étendue de Do While Loop car elle fonctionne de la même manière mais il y a une légère différence lors du test de la condition.
Dans Do Loop While, il exécute une itération de la boucle avant de tester la condition que vous avez spécifiée et si la condition est vraie, il continuera à boucler.
Disons que vous voulez écrire un code pour vérifier un mot de passe pour exécuter un code et continuer à boucler alors que le mot de passe est incorrect (nous le voyons dans l’exemple).
Syntaxe
Voici la syntaxe de VBA Do Loop While.
- Do : c’est le mot-clé de départ de la boucle Do While.
- Instruction : il s’agit de la ou des lignes de code que vous souhaitez exécuter dans la boucle.
- Loop While : C’est le mot-clé pour continuer la boucle et tester la condition que vous avez spécifiée.
- Condition : il s’agit de la condition que vous souhaitez tester avant que la boucle ne commence sa deuxième itération et continue la boucle.
Comme vous pouvez le voir dans la syntaxe de Do Loop While, il exécutera d’abord l’instruction une fois, puis il ira à la condition et la testera, et si cette condition est vraie, il démarrera la boucle et la poursuivra pendant que le la condition est vraie.
Exemple pour comprendre la boucle DO alors que
Pour comprendre la boucle do while, écrivons un code pour afficher une zone de saisie et demandons à l’utilisateur d’entrer le mot de passe.
Cette zone de saisie continuera à bien montrer que le mot de passe saisi par l’utilisateur est incorrect jusqu’à cinq tentatives et après cela, la zone de saisie disparaîtra sans exécuter la procédure.
- Tout d’abord, déclarez deux variables dont vous avez besoin pour stocker le mot de passe et le compteur de tentatives.
- Après cela, tapez le mot-clé « Do ». Ici, vous n’avez pas besoin de définir d’abord la condition comme vous l’avez vu dans la syntaxe.
- Ensuite, vous devez écrire une ligne de code pour afficher la zone de saisie qui demande à l’utilisateur d’entrer le mot de passe.
- À partir de là, vous devez définir un compteur pouvant compter jusqu’à cinq (s’additionne à chaque itération de boucle).
- Maintenant, tapez le mot clé « Loop While » et définissez deux conditions qui peuvent vérifier la valeur entrée par l’utilisateur et dans la zone de saisie et peuvent tester la valeur du compteur si elle est inférieure à 5.
- À la fin, écrivez le code que vous souhaitez exécuter. Ici, j’utilise l’instruction IF qui affichera une boîte de message si le mot de passe saisi par l’utilisateur est correct.
Sub vba_do_loop_while()
Dim varPassword As Variant, i As Double
Do
varPassword = InputBox _
("Enter the password to start the procedure:", _
"Check Password 1.0")
i = i + 1
Loop While varPassword <> "CorrectPassword" And i < 5
If varPassword = "CorrectPassword" Then
MsgBox "Your Password is Correct"
End If
End Sub
Laissez-moi vous expliquer ce code.
- Dans la première partie de ce code, vous avez la boucle do while qui affichera une boîte de saisie à l’utilisateur et lui demandera un mot de passe .
- Et si le mot de passe est incorrect, il continuera à exécuter la boucle jusqu’à ce que l’utilisateur entre le mot de passe correct.
- Mais comme vous utilisez un compteur pour compter les itérations de la boucle et une fois que ce compteur atteint le 5, la boucle s’arrêtera .