Comment utiliser les boucles For-Next dans Excel 2016 VBA

Le type de boucle le plus simple dans la programmation Excel VBA est une boucle For-Next. Le bouclage est contrôlé par une variable de compteur, qui commence à une valeur et s'arrête à une autre valeur. Les instructions entre l'instruction For et l'instruction Next sont les instructions qui sont répétées dans la boucle.

Un exemple For-Next

L'exemple suivant utilise une boucle For-Next pour additionner les 1 000 premiers nombres positifs. La variable Total commence par zéro. Ensuite, le bouclage se produit. La variable Cnt est le compteur de boucle. Il commence par 1 et est incrémenté de 1 à chaque fois dans la boucle. La boucle se termine lorsque Cnt est égal à 1 000.

Cet exemple n'a qu'une seule instruction à l'intérieur de la boucle. Cette instruction ajoute la valeur de Cnt à la variable Total. Lorsque la boucle se termine, une MsgBox affiche la somme des nombres.

Sous AddNumbers()
  Dim Total en tant que double
  Dim Cnt As Long
  Total = 0
  Pour Cnt = 1 à 1000
    Total = Total + Cnt
  Cnt suivant
  Total de la boîte de messages
Fin du sous-marin

Étant donné que le compteur de boucle est une variable normale, vous pouvez écrire du code pour modifier sa valeur dans le bloc de code entre les instructions For et Next. Ceci, cependant, est une très mauvaise pratique.

Exemples For-Next avec une étape

Vous pouvez utiliser une valeur Step pour ignorer certaines valeurs de compteur dans une boucle For-Next. Voici l'exemple précédent, réécrit pour additionner uniquement les nombres impairs compris entre 1 et 1 000 :

Sous AddOddNumbers()
  Dim Total en tant que double
  Dim Cnt As Long
  Total = 0
  Pour Cnt = 1 à 1000 Étape 2
    Total = Total + Cnt
  Cnt suivant
  Total de la boîte de messages
Fin du sous-marin

Cette fois, Cnt commence par 1 puis prend les valeurs 3, 5, 7, et ainsi de suite. La valeur Step détermine la façon dont le compteur est incrémenté. Notez que la valeur de boucle supérieure (1000) n'est pas réellement utilisée car la valeur la plus élevée de Cnt sera 999.

Voici un autre exemple qui utilise une valeur Step de 3. Cette procédure fonctionne avec la feuille active et applique un ombrage gris clair à chaque troisième ligne, de la ligne 1 à la ligne 100.

Sub ShadeEveryThirdRow()
  Dim j'aussi longtemps
  Pour i = 1 à 100 Étape 3
    Lignes(i).Intérieur.Couleur = RVB(200, 200, 200)
  Ensuite je
Fin du sous-marin

Vérifiez le résultat de l'exécution de cette macro.

Comment utiliser les boucles For-Next dans Excel 2016 VBA

Utilisation d'une boucle pour appliquer un ombrage d'arrière-plan aux lignes.

Un exemple For-Next avec une instruction Exit For

Une boucle For-Next peut également inclure une ou plusieurs instructions Exit For dans la boucle. Lorsque VBA rencontre cette instruction, la boucle se termine immédiatement.

L'exemple suivant illustre l'instruction Exit For. Cette routine est une procédure Function, destinée à être utilisée dans une formule de feuille de calcul. La fonction accepte un argument (une variable nommée Str) et renvoie les caractères à gauche du premier chiffre numérique. Par exemple, si l'argument est « KBR98Z », la fonction renvoie « KBR ».

Fonction TextPart(Str)
  Dim j'aussi longtemps
  TextPart = ""
  Pour i = 1 à Len(Str)
    Si IsNumeric(Mid(Str, i, 1)) Then
      Quitter pour
    Autre
      TextPart = TextPart & Mid(Str, i, 1)
    Fin si
  Ensuite je
Fonction de fin

La boucle For-Next commence par 1 et se termine par le nombre qui représente le nombre de caractères de la chaîne. Le code utilise la fonction Mid de VBA pour extraire un seul caractère dans la boucle. Si un caractère numérique est trouvé, l'instruction Exit For est exécutée et la boucle se termine prématurément.

If the character is not numeric, it is appended to the returned value (which is the same as the function’s name). The only time the loop will examine every character is if the string passed as the argument contains no numeric characters.

A nested For-Next example

You can have any number of statements in the loop and nest For-Next loops inside other For-Next loops.

The following example uses a nested For-Next loop to insert random numbers into a 12-row-by-5-column range of cells. Notice that the routine executes the inner loop (the loop with the Row counter) once for each iteration of the outer loop (the loop with the Col counter). In other words, the routine executes the Cells(Row, Col) = Rnd statement 60 times.

Comment utiliser les boucles For-Next dans Excel 2016 VBA

These cells were filled by using a nested For-Next loop.

Sub FillRange()
  Dim Col As Long
  Dim Row aussi longtemps
  Pour Col = 1 à 5
    Pour la ligne = 1 à 12
      Cellules (Ligne, Col) = Rnd
    Ligne suivante
  Col suivant
Fin du sous-marin

L'exemple suivant utilise des boucles For-Next imbriquées pour initialiser un tableau tridimensionnel avec la valeur 100. Cette routine exécute l'instruction au milieu de toutes les boucles (l'instruction d'affectation) 1 000 fois (10 * 10 * 10), à chaque fois avec une combinaison différente de valeurs pour i, j et k :

Sous NestedLoops()
  Dim MyArray (10, 10, 10)
  Dim j'aussi longtemps
  Dim j aussi long
  Dim k aussi longtemps
  Pour i = 1 à 10
    Pour j = 1 à 10
      Pour k = 1 à 10
        MonTableau(i, j, k) = 100
    Suivant k
  j suivant
Ensuite je
  ' D'autres déclarations vont ici
Fin du sous-marin

Voici un dernier exemple qui utilise des boucles For-Next imbriquées, avec une valeur Step. Cette procédure crée un damier en changeant la couleur d'arrière-plan des cellules en alternance.

Comment utiliser les boucles For-Next dans Excel 2016 VBA

Utiliser des boucles pour créer un motif en damier.

Le compteur Row boucle de 1 à 8. Une construction If-Then détermine la structure For-Next imbriquée à utiliser. Pour les lignes impaires, le compteur Col commence par 2. Pour les lignes paires, le compteur Col commence par 1. Les deux boucles utilisent une valeur Step de 2, de sorte que les cellules alternatives sont affectées. Deux instructions supplémentaires rendent les cellules carrées (comme un vrai damier).

Sous-MakeCheckerboard()
  Dim R aussi long, C aussi long
  Pour R = 1 à 8
    Si WorksheetFunction.IsOdd(R) Then
     Pour C = 2 à 8 Étape 2
       Cellules(R, C).Intérieur.Couleur = 255
     C suivant
    Autre
     Pour C = 1 à 8 Étape 2
       Cellules(R, C).Intérieur.Couleur = 255
     C suivant
    Fin si
  R suivant
  Lignes ("1:8"). Hauteur de ligne = 35
  Colonnes ("A:H").ColumnWidth = 6,5
Fin du sous-marin

Leave a Comment

Comment définir les options de vérification linguistique de Word 2010

Comment définir les options de vérification linguistique de Word 2010

Découvrez comment configurer les options de vérification linguistique dans Word 2010 pour améliorer votre rédaction et éviter les erreurs.

Comment utiliser la fonction CONFIANCE dans Excel

Comment utiliser la fonction CONFIANCE dans Excel

Découvrez comment utiliser les fonctions CONFIDENCE.NORM et CONFIDENCE.T dans Excel pour calculer des intervalles de confiance pour les moyennes de population, améliorant ainsi la prise de décision basée sur des données.

Formater les nombres en milliers et en millions dans les rapports Excel

Formater les nombres en milliers et en millions dans les rapports Excel

Améliorez la lisibilité de vos rapports Excel en formatant vos chiffres en milliers ou millions avec des astuces simples et efficaces pour votre audience.

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Apprenez comment personnaliser vos étiquettes de données dans Excel pour un meilleur rapport. Utilisez les valeurs de votre tableau croisé dynamique efficacement.

Comment créer une application Web Access

Comment créer une application Web Access

Découvrez comment créer une application Web dans Access 2016. Apprenez les étapes essentielles pour développer votre application en ligne facilement.

Comment utiliser les commentaires dans Microsoft Word 2019

Comment utiliser les commentaires dans Microsoft Word 2019

Découvrez comment ajouter, répondre, afficher et supprimer des <strong>commentaires dans Microsoft Word</strong> 2019 pour optimiser votre collaboration.

Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.