/ / Boucle VBA Excel

Boucle VBA Excel

Boucle simple | Double boucle | Triple boucle | Faire en boucle

Le bouclage est l’une des techniques de programmation les plus puissantes. UNE boucle dans Excel VBA vous permet de parcourir une plage de cellules avec seulement quelques lignes de code.

Boucle simple

Vous pouvez utiliser une seule boucle pour parcourir une plage de cellules unidimensionnelle.

Placez un 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

Résultat lorsque vous cliquez sur le bouton de commande de la feuille:

Boucle simple dans Excel VBA

Explication: Les lignes de code entre For et Next seront exécutées six fois. Pour i = 1, Excel VBA entre la valeur 100 dans la cellule située à l'intersection de la ligne 1 et de la colonne 1. Lorsque Excel VBA atteint Next i, il augmente i avec 1 et revient à l'instruction For. Pour i = 2, Excel VBA entre la valeur 100 dans la cellule située à l'intersection de la ligne 2 et de la colonne 1, etc.

Remarque: il est recommandé de toujours mettre en retrait (tabulation) le code entre les mots For et Next. Cela rend votre code plus facile à lire.

Double boucle

Vous pouvez utiliser une double boucle pour parcourir une plage de cellules en deux dimensions.

Placez un 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

Résultat lorsque vous cliquez sur le bouton de commande de la feuille:

Double boucle dans Excel VBA

Explication: Pour i = 1 et j = 1, Excel VBA entre la valeur 100 dans la cellule située à l'intersection de la ligne 1 et de la colonne 1. Lorsque Excel VBA atteint Next j, il augmente j avec 1 et revient à l'instruction For j. Pour i = 1 et j = 2, Excel VBA entre la valeur 100 dans la cellule située à l'intersection des lignes 1 et 2. Ensuite, Excel VBA ignore Next j car j ne s'exécute que de 1 à 2. Lorsque Excel VBA atteint Next i , il augmente de 1 avec 1 et revient à l’instruction For i. Pour i = 2 et j = 1, Excel VBA entre la valeur 100 dans la cellule située à l'intersection de la ligne 2 et de la colonne 1, etc.

Triple boucle

Vous pouvez utiliser une triple boucle pour parcourir des plages bidimensionnelles sur plusieurs feuilles de calcul Excel.

Placez un 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: La seule modification apportée par rapport au code de la double boucle est que nous avons ajouté une boucle de plus et ajouté Worksheets (c). devant les cellules pour obtenir la plage bidimensionnelle sur la première feuille pour c = 1, la deuxième feuille pour c = 2 et la troisième feuille pour c = 3. Téléchargez le fichier Excel pour voir ce résultat.

Faire en boucle

Outre la boucle For Next, il existe d'autres boucles dans Excel VBA. Par exemple, la boucle Do While. Le code placé entre Do While et Loop sera répété tant que la partie après Do While est vraie.

1. Placez un 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

Résultat lorsque vous cliquez sur le bouton de commande de la feuille:

Faire en boucle

Explication: tant que i est inférieur à 6, Excel VBA entre la valeur 20 dans la cellule située à 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 veut pas dire égal. Donc i = i + 1 signifie que i devient i + 1. En d’autres termes: prenez la valeur actuelle de i et ajoutez-y 1. Par exemple, si i = 1, i devient 1 + 1 = 2. Par conséquent, la valeur 20 sera placée dans la colonne A cinq fois (et non pas six car Excel VBA s'arrête lorsque i est égal à 6).

2. Entrez quelques chiffres dans la colonne A.

N'importe quel nombre de rangées

3. Placez un 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

Résultat lorsque vous cliquez sur le bouton de commande de la feuille:

Boucle Do While Avancée

Explication: aussi longtemps que Cells (i, 1).La valeur n'est pas vide (<> ne correspond pas à), Excel VBA entre la valeur dans la cellule située à l'intersection de la ligne i et de la colonne 2, soit 10 fois la valeur de la cellule située à l'intersection de la ligne i et de la colonne 1. Excel VBA s’arrête lorsque i est égal à 7 car Cells (7, 1) .Value est vide. C'est un excellent moyen de parcourir un nombre quelconque de lignes dans une feuille de calcul.

Lisez aussi: