Boucle Excel VBA - Macros Excel faciles

Table des matières

Boucle unique | Double boucle | Triple boucle | Faire la boucle pendant

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 codes.

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 :

Diminuer en tant qu'entier
Pour i = 1 à 6
Cellules(i, 1).Valeur = 100
Ensuite je

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

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 à l'intersection de la ligne 1 et de la colonne 1. Lorsque Excel VBA atteint Next i, il augmente i de 1 et revient à 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.

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 en tant qu'entier, j en tant qu'entier
Pour i = 1 à 6
Pour j = 1 à 2
Cellules(i, j).Valeur = 100
j suivant
Ensuite je

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

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 Next j, il augmente j de 1 et revient à 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 Next j car j ne s'exécute que de 1 à 2. Lorsque Excel VBA atteint Next i , il augmente i de 1 et revient à 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 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 comme entier, i comme entier, j comme entier
Pour c = 1 à 3
Pour i = 1 à 6
Pour j = 1 à 2
Feuilles de calcul(c).Cellules(i, j).Valeur = 100
j suivant
Ensuite je
c suivant

Explication : La seule modification apportée par rapport au code de la double boucle est que nous avons ajouté une boucle supplémentaire et ajouté des feuilles de travail (c). devant Cells 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 la boucle pendant

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 :

Diminuer en tant qu'entier
je = 1
Faire pendant que je < 6
Cellules(i, 1).Valeur = 20
je = je + 1
Boucle

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

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 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. En conséquence, la valeur 20 sera placée cinq fois dans la colonne A (pas six car Excel VBA s'arrête lorsque i est égal à 6).

2. Entrez quelques chiffres dans la colonne A.

3. Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivantes :

Diminuer en tant qu'entier
je = 1
Do While Cells(i, 1).Valeur ""
Cellules(i, 2).Valeur = Cellules(i, 1).Valeur + 10
je = je + 1
Boucle

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

Explication : tant que Cells(i, 1). La valeur n'est pas vide (signifie différent de), Excel VBA saisit la valeur dans la cellule à l'intersection de la ligne i et de la colonne 2, c'est-à-dire 10 supérieure à la valeur dans le cellule à 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). La valeur est vide. C'est un excellent moyen de parcourir un nombre quelconque de lignes sur une feuille de calcul.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave