VBA While Loop

VBA While Loop est un concept important et puissant que vous pourriez avoir vu dans la plupart des langages de programmation. Si vous maîtrisez ce concept sous VBA, vous serez en mesure de préparer des scripts puissants qui fonctionnent avec des données de feuille de calcul de manière totalement différente et pratique. Dans cet article, préparez-vous à explorer le monde des boucles while différentes ainsi que plusieurs exemples à venir pour votre aide.

Le but de la boucle While est de répéter un certain bloc d'instructions sous réserve qu'une condition soit remplie. Plus précisément, tandis que la boucle répète l'instruction correspondante alors qu'une condition est vraie. Une fois que la condition devient fausse (ne remplit pas), la boucle se termine elle-même.

Il existe essentiellement deux types de boucles while dans Microsoft Excel VBA:

  • Boucle VBA While-Wend
  • Boucle Do-While VBA

La boucle VBA While-Wend existe pour rendre le code compatible avec une ancienne version de codes. Le VBA Do-While est la version mise à jour de la boucle while qui est plus flexible et structurée par rapport à la précédente et est recommandée pour être utilisée par la communauté Microsoft.

Au cas où, vous vous demandez ce que signifie Wend, il s'agit d'une forme courte de While End et fonctionne de la même manière.

Exemples de VBA en boucle

Plongeons profondément dans le guide étape par étape des différents types de boucles VBA While.

Vous pouvez télécharger ce modèle Excel VBA While Loop ici - Modèle Excel VBA While Loop

Exemple 1

Boucle VBA While-Wend

Syntaxe:

Prenons un exemple pour mieux voir cela.

  • Définissez une sous-procédure pour créer une macro sous un nouveau module.

Code:

 Sub WhileEx1 () End Sub 

  • Définissez deux variables Number sur One et Sum sur Zero.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 End Sub 

  • Définissez une condition while pour la variable Number.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 End Sub 

  • Ajoutez des instructions à exécuter pour cette condition while.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 End Sub 

  • Ajoutez Debug.Print Sum pour que la somme des 10 premiers nombres naturels puisse être imprimée une par une dans la fenêtre Exécution.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub 

  • Enfin, terminez la boucle While avec l'instruction Wend.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Appuyez sur F5 ou sur le bouton Exécuter pour exécuter ce code et voir la sortie.

Dans ce code, la variable somme est définie sur zéro. Donc, chaque fois que le nombre est augmenté de 1 jusqu'à ce qu'il atteigne 10 (en utilisant la boucle while), la variable somme ajoutera la somme précédente avec le numéro actuel et l'affichera sous la fenêtre immédiate ligne par ligne ou somme par étapes, vous pouvez dire.

Exemple # 2

Boucle Do-While VBA

Boucle Do-While lorsque la condition est vérifiée avant le début de la boucle

Il existe deux façons d'exécuter la boucle while.

  • Vous pouvez ajouter une condition avant le début de la boucle (c'est la même chose que la boucle While-Wend). Ici, il n'y aurait pas d'itération de la boucle si la condition échoue pour la première fois.
  • Vous pouvez ajouter une condition à la fin de la boucle pour vérifier. Dans ce cas, il y aura au moins une itération de la boucle avant l'échec de la condition.

Syntaxe:

Prenons un exemple pour clarifier les choses.

  • Insérez un nouveau module et définissez une nouvelle sous-procédure pour définir une macro.

Code:

 Sub WhileEx2 () End Sub 

  • Définissez une nouvelle variable I comme un entier. Et initialisez sa valeur à 1.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 End Sub 

  • Utilisez Do-While pour ajouter une condition au début de la boucle.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 End Sub 

  • Ajoutez des instructions à exécuter tant que la condition est vraie. Ajoutez la ligne de code ci-dessous à la macro.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 cellules (i, 1) .Value = i * i End Sub 

Cette instruction permet à la ième ligne de la première colonne de stocker la valeur au carré des nombres.

  • Ajoutez une instruction supplémentaire qui permet un incrément de i de 1 à chaque itération de la boucle.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 cellules (i, 1) .Value = i * ii = i + 1 Loop End Sub 

  • Complétez cette boucle en ajoutant une instruction Loop à la fin de votre code.

Voyons la solution de contournement de ce code:

Pour les valeurs de i de 1 (i = 1 initialement) à 10, il calcule, i * i (c'est-à-dire la valeur au carré pour chaque valeur entière de i) et le saisit respectivement dans les lignes 1 à 10 de la colonne 1 (c'est-à-dire la colonne A) . La sortie n'est rien d'autre que les valeurs au carré des entiers 1 à 10.

  • Exécutez ce code en appuyant sur F5 ou sur le bouton Exécuter et voyez la sortie.

Vous pouvez voir les valeurs au carré des nombres naturels 1 à 10 qui sont stockés dans chaque cellule séparément de la colonne A.

Exemple # 3

Boucle Do-While lorsque la condition est vérifiée à la fin de la boucle

Syntaxe:

Voyons un exemple pour mieux voir le bouclage.

  • Insérez un nouveau module et définissez une nouvelle sous-procédure pour stocker une macro.

Code:

 Sub WhileEx3 () End Sub 

  • Définissez un nouvel entier i comme dans l'exemple précédent et affectez-lui une valeur de départ.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 End Sub 

  • Utilisez une condition Do pour ajouter les instructions à exécuter tant que la condition est vraie.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2) .Value = i * ii = i + 1 End Sub 

Il est recommandé d'utiliser un espace blanc (touche Tab) comme une indentation indiquée dans le code ci-dessus, ce qui permet au code de fonctionner correctement et définit également un bon format de structure pour le code.

  • Utilisez Loop while pour ajouter une condition à vérifier pour chaque instruction à exécuter.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2) .Value = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Exécutez ce code en appuyant sur F5 ou sur le bouton Exécuter manuellement et voyez la sortie.

Vous verrez la sortie comme indiqué dans la figure ci-dessus.

Comment ce code fonctionne-t-il dans le backend?

Le système multiplie la valeur de i (à partir de 1) à elle-même et stocke dans la deuxième colonne (Cellules (i, 2)) pour chaque ligne une par une. Le code cesse de s'exécuter dès que la valeur de la variable i atteint 10. La sortie peut être la même, ce qui signifie logiquement que les deux codes fonctionnent de la même manière. Mais la principale différence réside dans la compilation du code. Dans le dernier exemple, la condition était déjà là et le système savait jusqu'à quel nombre il devait aller. Cependant, dans ce code, le système ignore la condition au moment de l'exécution des instructions et exécute l'itération une par une. Tant que la condition est fausse, le code a cessé de s'exécuter.

Choses à retenir sur VBA en boucle

  • La boucle While-Wend est obsolète et n'est là que pour être compatible avec les anciennes versions de codes. Vous devez utiliser une boucle Do-While à la place.
  • La boucle Do-While est plus flexible et bien structurée que la boucle While-Wend.
  • La boucle Do-while peut être utilisée de deux manières: dans un cas, vous pouvez d'abord ajouter une condition à vérifier, puis ajouter des instructions satisfaisant la condition. D'une autre manière, vous pouvez d'abord ajouter des instructions, puis ajouter la condition à vérifier.
  • Il est recommandé d'utiliser des indentations dans les boucles afin que le code soit plus dynamique et plus facile à lire.

Articles recommandés

Cela a été un guide pour la boucle VBA Do While. Ici, nous avons discuté de la façon d'utiliser la boucle Do While de Excel VBA avec quelques exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Comment utiliser la fonction FIND dans Excel?
  2. Comment utiliser la fonction VBA TRIM?
  3. Matrices VBA | Tutoriel complet
  4. Comment utiliser le cas VBA Select?

Catégorie: