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 !
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() :
| Fonction | Utilisation idéale | Exemple |
|---|---|---|
Range() | Quand on sait exactement quelle cellule/plage utiliser | Range("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 factureDateFacture = 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 !
