Boucle For VBA

Excel VBA : les Boucles For… Next

Les boucles For...Next constituent un pilier de la programmation en VBA, offrant la capacité de répéter un bloc de code un nombre défini de fois.
Partagez facilement cette ressource avec vos collègues 📲
0
(0)

Les boucles For...Next constituent un pilier de la programmation en VBA, offrant la capacité de répéter un bloc de code un nombre défini de fois.

Cette structure de contrôle est particulièrement adaptée pour parcourir des collections d'objets ou des tableaux, mais elle est également incontournable pour exécuter une suite d'opérations de manière itérative, en fonction d'une condition prédéfinie.

Typiquement, le nombre d'itérations dans une boucle For est déterminé par la propriété Count d'une collection, ce qui permet une grande flexibilité et précision dans la gestion des données et des processus automatisés.

REMARQUE : Pour les débutants en VBA, la boucle For Next à décrémentation est souvent une fonctionnalité peu connue, mais incroyablement utile. En particulier, elle brille lorsque vous avez besoin de supprimer des lignes spécifiques d'un tableau.

La syntaxe de base d'une boucle For...Next en VBA est structurée de la manière suivante :

Dans cette structure :

  • Compteur est la variable de contrôle de la boucle, qui est typiquement un nombre entier. Cette variable est aussi appelée l'incrément de boucle, et le nom i est fréquemment utilisé pour sa simplicité et sa concision.
  • start correspond à la valeur initiale assignée à Compteur.
  • end définit la valeur finale que Compteur atteindra. La boucle s'exécutera jusqu'à ce que Compteur soit égal à end.

Cette syntaxe précise permet de contrôler le nombre exact de fois qu’un bloc de code sera exécuté, ce qui est essentiel pour la manipulation de données et la réalisation de tâches répétitives de manière efficace.

Exemple Simple : Boucle For VBA

Ce script simple illustre l'utilisation de la boucle For...Next en VBA. La variable i est initialisée à 1 et incrémente à chaque itération jusqu'à atteindre la valeur de 5. À chaque passage dans la boucle, le numéro de l'itération est affiché dans la fenêtre Immediate de l'éditeur VBA, grâce à l'instruction Debug.Print.

L'exécution pas à pas de ce code via la touche F8 permet de suivre en détail chaque étape de la procédure. Cela aide non seulement à comprendre le flux de la boucle For, mais également à visualiser comment les valeurs de la variable i évoluent de 1 à 5. Chaque pression sur F8 exécute une itération du bloc de code, rendant visibles les résultats intermédiaires dans la fenêtre Immediate, où les numéros de 1 à 5 seront affichés séquentiellement, démontrant ainsi le comptage par la boucle.

Utilisation de Step dans For…Next (Boucle à incrémentation)

Le mot-clé Step joue un rôle crucial dans la personnalisation du comportement d'incrément de la variable de boucle dans les structures For...Next en VBA.

Par défaut, l'incrément est fixé à 1, ce qui signifie que la variable de boucle augmente de 1 à chaque itération. Cependant, en utilisant Step, vous pouvez modifier cette valeur d'incrément pour adapter la boucle à des besoins spécifiques.

Syntaxe avec Step
(Boucle à incrémentation)

La syntaxe complète pour une boucle For...Next avec un incrément spécifié est la suivante :

Dans cette structure :

  • Compteur est la variable de contrôle de la boucle.
  • start définit la valeur initiale de Compteur.
  • end est la valeur finale que Compteur doit atteindre ou dépasser pour que la boucle se termine.
  • increment spécifie de combien Compteur sera augmenté (ou diminué, si l'incrément est négatif) après chaque itération. Cela permet de contrôler le pas de l'itération, offrant ainsi une grande flexibilité dans le traitement des données.

Cette capacité à ajuster l'incrément permet des itérations plus complexes, telles que sauter certains éléments dans une séquence, ou itérer à travers des valeurs en ordre décroissant, en ajustant simplement la valeur de l'incrément.

Exemple avec Step
(Boucle à incrémentation)

Ce script montre comment utiliser Step pour incrémenter la variable i de la boucle par 5 à chaque itération, comptant ainsi de 0 à 60. Cela démontre l'efficacité de Step pour ajuster l'incrément à des intervalles spécifiques, facilitant le parcours d'une gamme de valeurs à pas réguliers.

Exemple de boucle à décrémentation

L’utilisation de Step – n,  initiera une boucle à décrémentation ou boucle à rebours

Ce code implémente une boucle à décrémentation, où i commence à 24 et diminue jusqu'à 0. L'utilisation de Step -1 permet de réduire la variable de boucle d'une unité à chaque itération, idéal pour créer un effet de compte à rebours.

Pourquoi utiliser la boucle à décrémentation ?

La boucle For...Next avec Step -1 est extrêmement utile pour parcourir des éléments dans l'ordre inverse. Cela est particulièrement pertinent lorsqu'on manipule des collections ou des tableaux où l'ordre des opérations peut influencer le résultat final.

Scénario d'Utilisation

Supposons que vous ayez un tableau de 50 lignes, et que vous souhaitiez supprimer les lignes impaires :

Lorsque nous souhaitons supprimer des lignes d'un tableau, en effectuant dans une boucle un test sur une cellule de chaque ligne, nous utiliserons une boucle à décrémentation.

Cela garantit que les numéros de ligne ne seront pas altérés lors de l'itération à travers le tableau. En effet, lorsque l’on supprime une ligne d’un tableau, toutes les lignes se situant sous la ligne supprimée changeront d’indice.

Quel est mon niveau sur VBA Excel ?

Testez gratuitement votre niveau avec notre Quiz VBA Excel ( 7min)

Optimiser les temps d’exécution d’une boucle For…Next

Le développeur utilisera très souvent la boucle For Next pour rechercher une valeur dans un tableau de valeur. Une fois la valeur trouvée, il sera possible de sortir de la boucle pour optimiser le temps d’exécution d’une boucle.

Exemple de sortie de boucle :

Explication :

Dans cet exemple, nous déclarons une variable MyVar de type Variant. Nous lui attribuons une chaîne de caractères contenant des mots séparés par des virgules (que nous appellerons le "séparateur de texte"). La fonction Split divise cette chaîne en un tableau mémoire unidimensionnel, plaçant chaque mot dans une cellule du tableau.

Nous démarrons ensuite une boucle For qui parcourt tous les index de notre nouveau tableau mémoire MyVar. Le plus petit index d'un tableau mémoire unidimensionnel est LBound(Tableau) (Limite Inférieure : Borne Inférieure), et dans un tableau mémoire unidimensionnel de type Variant, le plus petit index est 0. Le plus grand index est UBound(Tableau) (Limite Supérieure : Borne Supérieure).

Pendant la boucle, si l'élément en scrutation du tableau correspond à "Cerise", nous affichons dans une boîte de dialogue le numéro de l'index où se trouve le mot "Cerise". Après avoir trouvé ce que nous recherchions, nous sortons de la boucle pour optimiser son temps d'exécution en utilisant la commande Exit For. Nous retrouverons ensuite End if la fin de condition puis la commande Next i pour incrémenter notre boucle.

End Sub pour clôturer notre procédure.

Pour information dans une base de données faisant appel à un tableau bidimensionnel que l’on pourrait appeler MyArray, avec pour ordonnées des enregistrements et pour origine des champs de données le plus grand indice des ordonnées sera égale à Ubound(MyArray, 1) et le plus grand indice de champ sera égale à Ubound(MyArray, 2)

Les boucles imbriquées

Les boucles imbriquées ou Nested Loop sont définies avec une boucle que l’on appelle externe à l’interieur de laquelle peut être initiée une ou plusieurs boucles internes. Bien que le nombre de boucles imbriquées ne soit pas limité, en pratique, il est rare d'avoir besoin de plus de quelques niveaux d'imbrication de boucles.

Dans l’exemple suivant, nous avons deux boucles imbriquées pour réaliser un planning hebdomadaire dont l’unité est 1 heure :

Les boucles imbriquées Excel VBA exemple

Pour aller plus loin

Les boucles For...Next ; For...Next Step et For...Next Step -1 sont des outils de programmation puissants en VBA qui offrent une flexibilité considérable pour itérer à travers des ensembles de données dans différents ordres.

En maîtrisant ces structures, les développeurs peuvent écrire des codes plus efficaces et adaptés à une gamme plus large de situations.

Formation VBA Excel : découvrez les macros 🕹️

Vous êtes à l'aise avec Excel et vous souhaitez passer à un niveau supérieur ? Il est temps d'apprendre le langage de programmation VBA pour créer de véritables applications dans Excel ! Explorez notre programme de formation Excel VBA pour apprendre à créer des macros et automatiser vos classeurs.

Que vous soyez une entreprise ou un particulier, nous avons conçu une formation Macros VBA Excel adaptée à vos besoins spécifiques. Nous vous offrons la flexibilité de choisir entre des formations à distance ou en présentiel, selon vos préférences et contraintes.

En choisissant notre formation VBA Excel (macros), vous pourrez également passer la certification TOSA, une référence en matière de certification bureautique.

FAQ : Boucle For...Next en VBA

Cette FAQ fournit une base solide pour comprendre et exploiter efficacement les boucles For...Next en VBA, vous aidant à gérer des scénarios de programmation variés et complexes.

As-tu aimé cet article ?

Clique sur l'étoile pour l'évaluer !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote jusqu'à présent ! Tu peux être le premier à évaluer cet article.

Gilles CHARRAULT

Gilles CHARRAULT

Fort d'une expérience de cadre dans l'industrie, reconverti en expert Excel VBA, je propose des formations personnalisées et des solutions de développement sur mesure en programmation VBA. Créateur de l'outil XLOneClick, je suis spécialisé dans l'automatisation de processus et la gestion de données via Excel pour optimiser la productivité des entreprises.

Articles: 9

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

LES 25 FONCTIONS EXCEL les plus utilisées !
Félicitations ! Ton ebook Excel offert !
EXERCICES | FICHES | EXEMPLES
LES 25 FONCTIONS EXCEL LES PLUS UTILISÉES !
E-book Excel offert
Vous souhaitez progresser rapidement et exploiter le plein potentiel d'Excel ? Découvrez dès maintenant notre formation adaptée à votre niveau !
Choisissez votre formation Excel !
Créateur de Contenus sur EXCEL
Rejoignez notre équipe dès maintenant
Nous recherchons une personne (basée à Metz est un +) avec un niveau avancé sur Excel pour nous soutenir dans la création de contenus.
  • Maîtrise avancée d'Excel, y compris Power Query.
  • Passion pour l'enseignement et la création de contenus pédagogiques.
  • Poste flexible adapté aux formateurs, indépendants, étudiants ou ceux cherchant un emploi complémentaire.