Excel VBA boucle
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:
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:
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.
-
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:
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).
-
Entrez quelques chiffres dans la colonne A.
-
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:
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.