Looping est l’une des techniques les plus puissantes de programmation. Une boucle dans Excel VBA vous permet de boucle à travers une gamme de cellules avec seulement quelques lignes de codes.

Boucle simple

Vous pouvez utiliser une seule boucle en boucle à travers une gamme unidimensionnelle de cellules.

Placez un lien: / ABV-create-a-macro-commande bouton # [bouton de commande] sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim i As Integer

For i = 1 To 6

Cells(i, 1).Value = 100

Next i

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Single Loop in Excel VBA

Explication: Les lignes de code entre pour et suivant sera exécuté six fois. Pour i = 1, Excel VBA entre la valeur 100 dans la cellule à l’intersection de la ligne 1 et de la colonne 1. Lorsque Excel VBA atteint Next i, i il augmente avec 1 et saute à l’instruction for. Pour i = 2, Excel VBA entre la valeur 100 dans la cellule à l’intersection de la ligne 2 et de la colonne 1, etc.

Note: il est bon de (onglet) toujours tiret le code entre les mots pour et Suivant. Cela rend votre code plus facile à lire.

Double boucle

Vous pouvez utiliser une double boucle en boucle à travers une gamme bidimensionnelle de cellules.

Placez un lien: / ABV-create-a-macro-commande bouton # [bouton de commande] sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 2

Cells(i, j).Value = 100

Next j

Next i

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Double Loop in Excel VBA

Explication: Pour i = 1 et j = 1, Excel VBA entre la valeur 100 dans la cellule à l’intersection de la ligne 1 et de la colonne 1. Lorsque Excel VBA atteint Ensuite j, il augmente j avec 1 et saute à l’instruction for j . Pour i = 1 et j = 2, Excel VBA entre la valeur 100 dans la cellule à l’intersection de la ligne 1 et de la colonne 2. Ensuite, Excel VBA ignore suivante j parce que j ne fonctionne que de 1 à 2. Lorsque Excel VBA atteint Next i , il augmente avec i 1 et saute à l’instruction For i. Pour i = 2 et j = 1, Excel VBA entre la valeur 100 dans la cellule à l’intersection de la ligne 2 et de la colonne 1, etc.

Triple boucle

Vous pouvez utiliser une boucle triple à boucle à travers les plages en deux dimensions sur plusieurs feuilles de calcul Excel.

Placez un lien: / ABV-create-a-macro-commande bouton # [bouton de commande] sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3

For i = 1 To 6

For j = 1 To 2

Worksheets(c).Cells(i, j).Value = 100

Next j

Next i

Next c

Explication: Le seul changement apporté par rapport au code de la double boucle est que nous avons ajouté une boucle et ajoutée Worksheets ©. en face de cellules pour obtenir la gamme en deux dimensions sur la première feuille pour c = 1, la deuxième feuille pour c = 2 et la troisième feuille de c = 3. Télécharger le fichier Excel pour voir ce résultat.

Do While

En plus de la boucle For Next, il y a d’autres boucles dans Excel VBA. Par exemple, la boucle Do While. Le code placé entre Do While et la boucle sera répétée aussi longtemps que la partie après Do While est vrai.

  1. Placez un lien: / ABV-create-a-macro-commande bouton # [bouton de commande] sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim i As Integer

i = 1

Do While i < 6

Cells(i, 1).Value = 20

i = i + 1

Loop

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Do While Loop

Explication: tant que i est inférieur à 6, Excel VBA entre la valeur 20 dans la cellule à l’intersection de la ligne i et de la colonne 1 et incrémente i de 1. Dans Excel VBA (et dans d’autres langages de programmation), le symbole « = »signifie devient. Cela ne signifie pas égale. Donc, i = i + 1 signifie i i + 1. devient En d’autres termes: prendre la valeur actuelle de i et ajouter 1 à elle. Par exemple, si i = 1, i + 1 devient 1 = 2. En conséquence, la valeur 20 sera placé dans la colonne A cinq fois (pas six parce que Excel VBA arrête quand i est égal à 6).

  1. Entrez quelques chiffres dans la colonne A.

Any Number Of Rows

  1. Placez un lien: / ABV-create-a-macro-commande bouton # [bouton de commande] sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim i As Integer

i = 1

Do While Cells(i, 1).Value <> ""

Cells(i, 2).Value = Cells(i, 1).Value + 10

i = i + 1

Loop

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Advanced Do While Loop

Explication: aussi longtemps que les cellules (i, 1) .Value est non vide (<> signifie pas égal à), Excel VBA entre la valeur dans la cellule à l’intersection de la ligne i et de la colonne 2, qui est 10 supérieure à la valeur dans la cellule à l’intersection de la ligne i et la colonne 1. arrête Excel VBA lorsque i est égal à 7 parce que les cellules (7, 1) .Value est vide. Ceci est un excellent moyen de boucle à travers un certain nombre de lignes sur une feuille de calcul.