Boucles VBA - Liste des 4 principaux types de boucles (avec exemples)

Table des matières

Boucles Excel VBA

Les boucles sont couramment utilisées dans tous les langages de programmation, où il y a un certain besoin ou un critère lorsque nous avons besoin d'un certain code pour exécuter un certain temps nous utilisons des boucles pour ces codes, maintenant il existe de nombreux types de boucles dans VBA tels que Do while, Do until, For Loop et For each loop, ces boucles aident le code à s'exécuter jusqu'à ce que la condition soit remplie.

Permettez-moi de faire cette déclaration au tout début même. «Si vous souhaitez maîtriser en VBA, vous devez compléter le master du concept de boucles dans les macros VBA.»

La boucle n'est rien d'autre que de parcourir une plage de cellules, de parcourir une plage d'objets pour répéter la même tâche pour la collection de cellules ou d'objets. Au lieu de faire la tâche dans un ensemble séparé de lignes de codes en utilisant des boucles, nous pouvons réduire au minimum la longueur du code.

Liste des 4 principaux types de boucles VBA

  1. Pour la prochaine boucle
  2. Pour chaque boucle
  3. Faire une boucle
  4. Faire jusqu'à la boucle

Voyons chacun de ces types en détail.

Type # 1 - Pour la prochaine boucle

La boucle For Next nous permet de parcourir la plage de cellules et d'effectuer la même tâche pour chaque cellule spécifiée dans la boucle. Ici, nous devons indiquer le numéro de départ et le numéro de fin.

Exemple

Par exemple, si vous souhaitez insérer des numéros de série de 1 à 10, voici la méthode traditionnelle d'insertion des numéros de série.

Numéro de série secondaire ()

Plage ("A1"). Valeur = 1
Plage ("A2"). Valeur = 2
Plage ("A3"). Valeur = 3
Plage ("A4"). Valeur = 4
Plage ("A5"). Valeur = 5
Plage («A6»). Valeur = 6
Plage («A7»). Valeur = 7
Plage («A8»). Valeur = 8
Plage («A9»). Valeur = 9
Plage («A10»). Valeur = 10

End Sub

Ça a l'air bien, n'est-ce pas? Mais le problème ici est seulement 10 fois que nous devons effectuer cette tâche. Mais imaginez que si vous voulez insérer 100 ou 1000 nombres, pouvez-vous écrire le code 100 ou 1000 lignes. C'est impossible, et c'est là que la beauté de la boucle For Next est utile.

Étape 1: Ouvrez la macro et déclarez la variable i comme Integer.

Sous Insert_Serial_Number ()

Dim i As Integer

End Sub

Étape 2: Ouvrez maintenant la boucle For . Mentionnez ici le début et la fin de la boucle à l'aide de la variable i.

Étape 3: Maintenant, écrivez le code que vous souhaitez exécuter. Nous devons insérer des nombres de 1 à 10 dans les cellules A1 à A10. Au lieu d'appliquer la méthode Range, appliquez la méthode Cells.

Il demande le numéro de ligne puisque nous avons déjà déclaré la variable i comme un entier dans un premier temps. Sa valeur est 1. Donc mentionner i comme votre numéro de ligne et 1 comme numéro de colonne.

Maintenant, la valeur de la valeur de cellule actuelle devrait être un, au lieu de mentionner le numéro un, mentionnez i comme valeur. Parce que chaque fois que la boucle s'exécute, la valeur de i augmentera de 1.

Appuyez maintenant sur la touche F8 pour entrer une par une ligne. Appuyez sur F8 jusqu'à ce qu'il atteigne la boucle For.

Cette couleur jaune indique que la ligne de code sélectionnée est sur le point de s'exécuter. Placez un curseur sur I, et il affichera la valeur comme zéro.

Maintenant, appuyez une fois de plus sur la touche F8 et placez un curseur sur i et maintenant la valeur est 1.

Ainsi, les valeurs de i partout sont maintenant égales à 1. « Cells (I, 1) .value = I» signifie Cells (1, 1) .value = 1.

Appuyez sur la touche F8 et voyez la valeur dans la cellule A1. Vous devez voir 1 dans la cellule A1.

Maintenant, si vous appuyez sur la touche F8, il retournera à la boucle For une fois de plus car la limite de fin de la variable i est 10. Cette fois, la valeur I sera 2.

La boucle For the Next s'exécutera 10 fois et insérera des numéros de série de 1 à 10.

Type # 2 - Pour chaque boucle

For Chaque boucle dans VBA sert à parcourir une collection d'objets. La boucle suivante parcourt les cellules et exécute la tâche, et la boucle For Each parcourt des objets tels que des feuilles de calcul, des graphiques, des classeurs, des formes.

En utilisant cette boucle, nous pouvons parcourir toutes les feuilles de calcul et effectuer certaines tâches. Par exemple, vous pouvez parcourir toutes les feuilles de calcul pour masquer et afficher les feuilles de calcul.

Exemple 1

Si vous souhaitez masquer toutes les feuilles de calcul à l'exception de la feuille sur laquelle vous travaillez, comment allez-vous procéder? Si vous avez 20 feuilles dans le classeur, c'est un processus qui prend du temps. Mais avec la boucle FOR EACH, nous pouvons effectuer cette tâche.

J'ai 5 feuilles, et je veux cacher toutes les feuilles sauf la feuille «principale» ci-dessous le code ferait la tâche pour moi.

Sub To_Hide_All_Sheet ()

Dim Ws As Feuille de calcul

Pour chaque Ws dans ActiveWorkbook.Worksheets

Si Ws.Name "Main" Then
Ws.Visible = xlSheetVeryHidden
End If

Prochain Ws

End Sub

Exemple # 2

Si vous souhaitez afficher toutes les feuilles masquées, le code ci-dessous fera le travail pour vous.

Sub To_UnHide_Specific_Sheet ()

Dim Ws As Feuille de calcul

Pour chaque Ws dans ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Prochain Ws

End Sub

Type # 3 - Boucle Do While

La boucle Do While exécute la tâche tant que la condition donnée est TRUE, et une fois que la condition devient FALSE, la boucle s'arrête. Contrairement aux deux autres boucles, Do While teste la condition à la fin de la boucle, pas au début.

Je vais vous montrer l'exemple de l'insertion de numéros de série avec la boucle Do While.

Sub Do_While_Example ()

Dim i As Integer

i = 1
Do While i <11
Cells (i, 1) .Value = i
i = i + 1
Loop

End Sub

La boucle ci-dessus fonctionnera tant que i est inférieur à 11 et continue d'insérer les numéros de série. Au moment où je deviens supérieur à 11, il cessera de tourner.

Type # 4 - Boucle à faire jusqu'à

Contrairement à la boucle Do While, la boucle Do Until ne s'exécute pas tant que la condition est TRUE; au contraire, il boucle jusqu'à ce que la condition soit FAUX. Par exemple, regardez le code ci-dessous.

Sub Do_Until_Example ()

Dim i As Integer

i = 1
faire jusqu'à ce que i = 11
cellules (i, 1) .Valeur = i
i = i + 1
boucle

End Sub

La seule différence entre la boucle Do While & Do Until est l'opérateur que nous spécifions. Dans Do, alors que nous avons mentionné l'exécution de la boucle alors que i est inférieur à (<), 11 mais dans do until loop, nous avons mentionné d'exécuter la boucle jusqu'à ce que i soit égal à (=) à 11.

Choses dont il faut se rappeler

  • Il existe un exemple de boucle VBA Excel plus avancé, mais nous couvrirons chacun d'eux dans un article séparé en détail.
  • Chaque boucle est destinée aux variables d'objet.
  • Bien que Do While & Do Until ait la même apparence, il est très important de mentionner la condition.
  • Les boucles sont des concepts très importants.

Articles intéressants...