2-Formation gratuite Excel VBA — les variables, les automatisations et les boucles VBA !

Dans cette deuxième partie de notre formation VBA gratuit avec PDF, on va démystifier les bases pour que vous puissiez coder vos premières automatisations sans prise de tête. On va voir comment utiliser les variables, manipuler des cellules et créer des boucles logiques pour rendre vos tâches Excel plus efficaces.

Au programme : vous apprendrez à déclarer et utiliser des variables pour stocker des données dynamiquement, à manipuler des cellules et des plages sans clics inutiles, et à écrire des boucles VBA pour automatiser des séries d’actions. À la fin de cet article, vous aurez toutes les bases pour créer votre premier script VBA fonctionnel.

Au programme de ce deuxième module :

En route pour le niveau expert ? Avec notre formation Excel VBA individualisée, apprenez efficacement, à votre rythme.

Vidéo 2 : les variables, les automatisations et les boucles VBA !

Vidéo 2 : les variables, les automatisations et les boucles VBA !

Les variables en VBA : votre première brique d'automatisation

En VBA, une variable est une zone de stockage temporaire qui permet de retenir une valeur pour la réutiliser dans votre code. Sans variables, chaque action nécessiterait une entrée manuelle, ce qui limite fortement l'automatisation.

Imaginez une boîte où vous rangez des informations que vous pourrez récupérer plus tard. Vous pouvez y stocker des nombres, du texte, des dates ou encore des valeurs logiques (Vrai/Faux). Voyons comment les utiliser efficacement.

1.Déclarer une variable en VBA

Pour utiliser une variable en VBA, il faut d’abord la déclarer avec le mot-clé "Dim". Ensuite, on lui donne un nom et un type pour préciser quel type de données elle stockera.

Syntaxe :

Dim NomDeLaVariable As TypeDeDonnée

Exemples concrets :

Dim Age As Integer ' Stocke un nombre entier
Dim Nom As String ' Stocke du texte
Dim DateNaissance As Date ' Stocke une date
Dim EstValide As Boolean ' Stocke Vrai ou Faux

2. Pourquoi déclarer un type de donnée ?

Attribuer un type à une variable permet :

  • D’éviter les erreurs (ex : un texte ne peut pas être additionné comme un nombre).
  • D’améliorer la performance du code en optimisant la mémoire utilisée.
  • D’assurer la cohérence des données manipulées.

Bon à savoir : Si vous ne précisez pas le type, VBA attribuera Variant par défaut. C'est flexible, mais plus lent et gourmand en ressources.

3.Attribuer une valeur à une variable

Une fois déclarée, une variable peut être alimentée avec une valeur :

Age = 30
Nom = "Jean Dupont"
DateNaissance = #01/01/1990#
EstValide = True

4. Exploiter les variables dans un script VBA

Imaginons un script VBA qui affiche un message personnalisé en fonction des valeurs stockées dans les variables.

Dim Prenom As String
Dim Age As Integer

Prenom = "Sophie"
Age = 28

MsgBox "Bonjour " & Prenom & ", vous avez " & Age & " ans.", vbInformation, "Message VBA"

Ici, VBA affiche une fenêtre pop-up avec un message personnalisé généré dynamiquement.

Manipuler les cellules et plages en VBA

Gérer des cellules et des plages en VBA est essentiel pour écrire, lire et modifier des données automatiquement. Avec quelques lignes de code, vous pouvez remplir des tableaux en un instant, éviter les erreurs de saisie et gagner des heures sur vos tâches répétitives.

1. La méthode Range() : cibler une cellule ou une plage

La méthode Range() permet de désigner une cellule précise ou une plage de cellules dans une feuille Excel.

Exemples :

Range("A1").Value = "Bonjour" ' Écrit "Bonjour" dans A1
Range("B2:B10").Value = 100 ' Remplit B2 à B10 avec 100

Astuce : Vous pouvez aussi modifier la mise en forme d’une cellule.

Range("A1").Font.Bold = True ' Met le texte en gras
Range("A1").Interior.Color = RGB(255, 255, 0) ' Met le fond en jaune

2. La méthode Cells() : une approche plus dynamique

Avec Cells(), vous pouvez sélectionner une cellule en fonction de ses coordonnées (ligne, colonne). Cette méthode est idéale pour les boucles et scripts dynamiques.

Syntaxe :

Cells(ligne, colonne).Value = "Donnée"

Exemples :

Cells(1, 1).Value = "Ceci est A1" ' Équivaut à Range("A1")
Cells(3, 2).Value = "Ligne 3, Colonne 2" ' Correspond à B3

Différence entre Range() et Cells() :

FonctionUtilisation idéaleExemple
Range()Quand on sait exactement quelle cellule/plage utiliserRange("A1")
Cells()Quand les cellules sont dynamiques (ex : dans une boucle)Cells(3,2)

3. Remplir automatiquement une colonne avec une boucle

Imaginons que vous vouliez remplir la colonne A avec des numéros de 1 à 10 sans les taper à la main. Vous pouvez utiliser une boucle For…Next :

Exemple : remplir A1 à A10 avec des numéros

Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Next i

Automatiser des tâches avec les boucles VBA

Vous répétez sans cesse les mêmes actions sur Excel ? Copier des valeurs ligne par ligne, ajuster des formats, créer des rapports… tout cela peut être automatisé grâce aux boucles VBA. Une boucle permet d'exécuter un bloc de code plusieurs fois, en fonction d’une condition.

Il existe plusieurs types de boucles en VBA, mais deux sont essentielles :

  • La boucle For…Next : parfaite si vous connaissez le nombre exact de répétitions.
  • La boucle Do While…Loop : idéale si la répétition dépend d'une condition à vérifier en temps réel.

1. La boucle For…Next : exécuter une action un nombre précis de fois

Avec For…Next, vous définissez une valeur de départ et une valeur de fin. VBA exécute alors le bloc de code autant de fois qu’indiqué.

Exemple : Remplir une colonne avec une série de nombres

Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i ' Insère le chiffre i dans la colonne A
Next i

Ici, A1 à A10 sont automatiquement remplis avec les nombres de 1 à 10.

Exemple : Appliquer un format sur plusieurs cellules

Dim i As Integer
For i = 1 To 10
Cells(i, 2).Font.Bold = True ' Met en gras les cellules de B1 à B10
Next i

Utile pour :

  • Numéroter des lignes
  • Appliquer un format à plusieurs cellules
  • Générer des séries de données automatiquement

2. La boucle Do While…Loop : répéter une action jusqu’à une condition

Avec Do While…Loop, VBA répète une action tant qu’une condition est vraie. Vous ne fixez pas un nombre précis d’itérations, c’est VBA qui décide en fonction de la situation.

Exemple : Trouver la première cellule vide dans une colonne

Dim i As Integer
i = 1 ' Départ en ligne 1

Do While Cells(i, 1).Value <> ""
       i = i + 1 ' Passe à la ligne suivante tant que ce n'est pas vide
Loop

MsgBox "Première cellule vide en A" & i

VBA cherche la première cellule vide en colonne A et affiche son numéro de ligne.

Exemple : Vérifier une valeur et arrêter à un seuil

Dim i As Integer
i = 1

Do While Cells(i, 1).Value < 50 ' Continue tant que la valeur est inférieure à 50
       i = i + 1
Loop

MsgBox "Première cellule avec une valeur supérieure à 50 : A" & i

Utile pour :

  • Vérifier des données ligne par ligne
  • Trouver une valeur spécifique dans un tableau
  • Arrêter un traitement dès qu'une condition est remplie

3. Cas pratique : générer une série de dates automatiquement

Imaginons que vous deviez remplir une colonne avec des dates progressives à partir d’aujourd’hui.

Exemple : Ajouter 10 jours dans la colonne A

Dim i As Integer
For i = 1 To 10
       Cells(i, 1).Value = Date + i ' Insère la date du jour + i
Next i

VBA génère une liste de 10 dates consécutives en colonne A.


Grâce aux boucles VBA, vous pouvez gagner des heures sur vos tâches répétitives ! Votre fichier Excel travaille pour vous, sans erreur et sans effort.

Dans la prochaine section, nous allons appliquer ces connaissances à un cas pratique : créer un script VBA pour automatiser des actions Excel.

Cas pratique – Créer un script VBA pour remplir des cellules automatiquement

Maintenant que vous maîtrisez les variables, la manipulation des cellules et les boucles VBA, il est temps d’assembler ces éléments dans un script complet et activable immédiatement.

Objectif : Remplir automatiquement une colonne avec une série de valeurs dynamiques, sans intervention manuelle.

Scénario : Vous devez générer une liste de factures avec des numéros et des dates

Nous allons créer un script VBA qui :

  • Génère des numéros de facture (1001, 1002, 1003…)
  • Ajoute une date de facturation (en partant d’aujourd’hui)
  • S’arrête automatiquement après 10 lignes

1. Code VBA prêt à l’emploi

Colonne A → Numéro de facture
Colonne B → Date de facturation

Sub GenererFactures()
        Dim i As Integer
        Dim NumeroFacture As Integer
        Dim DateFacture As Date

       NumeroFacture = 1001  ' Premier numéro de facture
       DateFacture = Date  ' Date du jour

       For i = 1 To 10  ' Boucle pour 10 lignes
            Cells(i, 1).Value = NumeroFacture  ' Colonne A : Numéro de facture
            Cells(i, 2).Value = DateFacture  ' Colonne B : Date

           NumeroFacture = NumeroFacture + 1  ' Incrémente le numéro de facture
           DateFacture = DateFacture + 1  ' Ajoute un jour à chaque ligne
Next i

MsgBox "Factures générées avec succès !", vbInformation, "VBA Automatique"
End Sub

2. Explication du script

On initialise les variables :

  • NumeroFacture = 1001 → Le premier numéro de facture
  • DateFacture = Date → On utilise la date du jour

La boucle For…Next exécute 10 fois :

  • Elle insère le numéro de facture en A1 → A10
  • Elle insère la date de facturation en B1 → B10
  • Chaque nouvelle ligne incrémente ces valeurs

À la fin, un message pop-up confirme la génération des factures.

3. Tester et exécuter le script

  • Ouvrez un fichier Excel
  • Appuyez sur ALT + F11 pour ouvrir l’éditeur VBA
  • Insérez un nouveau module (Insertion > Module)
  • Copiez-collez le script ci-dessus
  • Exécutez la macro (F5)

Résultat : Une liste de 10 factures générées automatiquement en quelques secondes !

Avec ce script, vous avez automatisé une tâche répétitive et chronophage en quelques lignes de code VBA. Plus besoin d’ajouter manuellement des numéros et des dates : Excel le fait pour vous !

Dans la conclusion, nous allons récapituler ce que vous avez appris et voir comment aller encore plus loin avec VBA.

Conclusion – Passez à l’étape supérieure avec VBA

Félicitations ! Vous venez de découvrir comment les variables, les automatisations et les boucles VBA permettent d’accélérer et d’optimiser votre travail sur Excel. En quelques lignes de code, vous pouvez :

  • Stocker des données dynamiques grâce aux variables
  • Manipuler des cellules et des plages pour lire, écrire et modifier vos tableaux
  • Utiliser des boucles VBA pour automatiser des actions répétitives
  • Créer des scripts complets qui font le travail à votre place

Avec ces bases, vous êtes prêt à automatiser vos tâches et à gagner des heures de travail chaque semaine !

Prochain cours

Et voilà ! Vous avez maintenant les bases pour utiliser VBA et automatiser vos tâches sur Excel grâce à notre cours gratuit Excel VBA. En maîtrisant les variables, la manipulation des cellules et les boucles, vous pouvez dire adieu aux actions répétitives et gagner un temps précieux. Plus besoin de copier-coller manuellement ou de rechercher des erreurs dans vos tableaux !

La clé pour progresser ? Pratiquez ! Testez vos scripts, expérimentez de nouvelles automatisations et adaptez-les à vos besoins. Plus vous jouez avec VBA, plus vous développerez des réflexes d’automatisation qui feront toute la différence dans votre productivité quotidienne.

Vous souhaitez aller plus loin sur Excel VBA ? Notre formation Excel VBA certifiante pour une montée en compétences rapide avec un formateur Excel VBA est parfaite.

Prochain rendez-vous ? Découvrez les formulaires VBA !

Excel vous fait perdre du temps ? Demandez un AUDIT gratuit
  • Identifier ce qui vous ralentit dans vos fichiers
  • Voir ce qui peut être automatisé ou fiabilisé
  • Comprendre comment faire évoluer votre façon de travailler
  • Découvrir le format de formation le plus efficace pour vous
  • Repartir avec une vision claire (même sans formation)
100 % gratuit • Sans engagement • 15 minutes Réservé aux professionnels basés en France
NICOLAS PARENT - Formateur Excel -
Expliquez-nous comment vous travaillez sur Excel. On vous montre quoi améliorer. En 15 minutes avec un expert, vous allez pouvoir :
LES 25 FONCTIONS EXCEL LES PLUS UTILISÉES !
E-book Excel offert