Pour la prochaine boucle dans Excel VBA - Un guide du débutant avec des exemples

En VBA, la boucle est utilisée lorsque vous devez effectuer la même tâche plusieurs fois jusqu'à ce qu'une condition soit remplie (ou jusqu'à ce qu'une condition soit vraie).

Dans ce didacticiel, vous apprendrez à utiliser la boucle For Next dans Excel VBA.

Si vous souhaitez apprendre VBA en toute simplicité, consultez mon Formation en ligne Excel VBA.

Utilisation de la boucle FOR NEXT dans Excel VBA

La boucle 'For Next' fonctionne en exécutant la boucle le nombre de fois spécifié.

Par exemple, si je vous demande d'ajouter les nombres entiers de 1 à 10 manuellement, vous ajouteriez les deux premiers nombres, puis ajouteriez le troisième nombre au résultat, puis ajouteriez le quatrième nombre au résultat, ainsi de suite…

N'est-ce pas ?

La même logique est utilisée dans la boucle For Next en VBA.

Vous spécifiez combien de fois vous voulez que la boucle s'exécute et spécifiez également ce que vous voulez que le code fasse à chaque fois que la boucle est exécutée.

Voici le format de boucle For Next que vous devez utiliser dans VBA pour ajouter les 10 premiers nombres entiers.

Pour i = 1 à 10 [ajouter le ième entier positif au résultat] Suivant i

Voyons maintenant quelques exemples d'utilisation de la boucle For Next.

Exemple 1 : addition des 10 premiers entiers positifs

Vous trouverez ci-dessous le code qui ajoutera les 10 premiers entiers positifs à l'aide d'une boucle For Next. Il affichera alors une boîte de message indiquant la somme de ces nombres.

Sub AddNumbers() Dim Total As Integer Dim Count As Integer Total = 0 For Count = 1 to 10 Total = Total + Count Next Count MsgBox Total End Sub

Dans ce code, la valeur de Total est définie sur 0 avant d'entrer dans la boucle For Next.

Une fois qu'il entre dans la boucle, il conserve la valeur totale après chaque boucle. Ainsi, après la première boucle, lorsque Counter est égal à 1, la valeur 'Total' devient 1, et après la deuxième boucle, elle devient 3 (1+2), et ainsi de suite.

Et enfin, lorsque la boucle se termine et lorsque Total a la somme des 10 premiers entiers positifs, une MsgBox affiche simplement le résultat dans une boîte de message.

Cliquez ici pour télécharger le fichier exemple

Exemple 2 : addition des 5 premiers entiers pairs positifs

Pour additionner les cinq premiers entiers pairs positifs (c'est-à-dire 2,4,6,8 et 10), vous avez besoin d'un code similaire avec une condition pour ne considérer que les nombres pairs et ignorer les nombres impairs.

Voici un code qui le fera :

Sub AddEvenNumbers() Dim Total As Integer Dim Count As Integer Total = 0 For Count = 2 to 10 Step 2 Total = Total + Count Next Count MsgBox Total End Sub

Notez que nous avons commencé la valeur Count à partir de 2 et que nous avons également utilisé l'étape 2 dans la syntaxe For.

L'étape 2 indiquerait au code d'incrémenter la valeur 'Count' de 2 à chaque fois que la boucle est exécutée. Ainsi, la valeur Count commence à partir de 2, puis devient 4, 6, 8 et 10 au fur et à mesure que la boucle se produit.

REMARQUE : une autre façon de procéder pourrait être d'exécuter la boucle de 1 à 10 et, dans la boucle, de vérifier si le nombre est pair ou impair. Cependant, l'utilisation de Step, dans ce cas, est un moyen plus efficace car elle ne nécessite pas que la boucle s'exécute 10 fois, mais seulement 5 fois.

Cliquez ici pour télécharger le fichier exemple.

Exemple 3 : Obtenir la partie numérique d'une chaîne alphanumérique

La boucle 'For Next' peut également être utilisée pour parcourir chaque caractère d'une chaîne.

Par exemple, si vous avez une liste de chaînes alphanumériques, vous pouvez utiliser la boucle For Next pour en extraire les nombres (comme indiqué ci-dessous) :

Voici un code qui crée une fonction personnalisée dans VBA qui peut être utilisée comme n'importe quelle autre fonction de feuille de calcul.

Il extrait la partie numérique de la chaîne alphanumérique.

Fonction GETNUMERIC(Cl As Range) Dim i As Integer Dim Result as Long For i = 1 To Len(Cl) If IsNumeric(Mid(Cl, i, 1)) Then Result = Result & Mid(Cl, i, 1) End If Next i GetNumeric = Result End Function

Dans ce code, le nombre de fois que la boucle est exécutée dépend de la longueur de la chaîne alphanumérique (il utilise la fonction LEN pour trouver la longueur de la chaîne).

Vous devez mettre cette fonction dans la fenêtre de code du module, puis vous pouvez l'utiliser comme n'importe quelle autre fonction de feuille de calcul.

Cliquez ici pour télécharger le fichier exemple.

Exemple 4 : obtenir des nombres aléatoires dans la plage sélectionnée

Supposons que vous vouliez saisir rapidement des nombres aléatoires dans les cellules sélectionnées, voici le code qui le fera.

Sub RandomNumbers() Dim MyRange As Range Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells(j, i) = Rnd Suivant j Suivant i Fin Sub

Il s'agit d'un exemple de boucle For Next imbriquée où une boucle For est utilisée dans une boucle For.

Supposons que vous fassiez une sélection de 10 lignes et 4 colonnes, la valeur de i varie de 1 à 4 et la valeur de j varie de 1 à 10.

Lorsque la première boucle For est exécutée, la valeur de i est 1. Elle passe ensuite à la deuxième boucle For qui s'exécute 10 fois (pour chaque ligne).

Une fois que la deuxième boucle For a été exécutée 10 fois, elle revient à la première boucle For où maintenant la valeur de i devient 2. Encore une fois, la boucle For suivante s'exécute 10 fois.

C'est ainsi que fonctionne la boucle For Next imbriquée.

Cliquez ici pour télécharger le fichier exemple.

Vous aimerez peut-être également les didacticiels Excel VBA suivants :

  • Travailler avec des cellules et des plages dans Excel VBA.
  • Travailler avec des feuilles de calcul dans Excel VBA.
  • Travailler avec des classeurs en utilisant VBA.
  • Utilisation des instructions IF Then Else dans VBA.
  • Excel VBA Sélectionnez le cas.
  • Création d'une fonction définie par l'utilisateur dans Excel.
  • Événements Excel VBA - Un guide simple (et complet)
  • Comment enregistrer une macro dans Excel.
  • Comment exécuter une macro dans Excel.
  • Comment créer un complément dans Excel.
  • Comment enregistrer et réutiliser une macro à l'aide du classeur de macros personnelles Excel.
  • Exemples de macros Excel utiles pour les débutants.
  • Utilisation de la fonction InStr dans VBA.

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

wave wave wave wave wave