Principe
VBA (Visual Basic for Applications) permet d'automatiser des tâches répétitives : enregistrement de macros, puis écriture de procédures avec variables, boucles (For, Do While), conditions (If), manipulation d'objets (Workbooks, Worksheets, Range). On l'utilise de moins en moins pour la préparation de données (Power Query est plus robuste) mais il reste utile pour l'automatisation de tâches et d'interfaces.
Comprendre pas à pas
1. La situation
Chaque matin, un approvisionneur colore à la main les lignes en retard de son fichier de suivi, puis les copie dans un onglet « Relances ». Cela lui prend 20 minutes. Question : comment automatiser une tâche répétitive dans Excel avec VBA ?
2. Une macro simple
| Élément | Code |
|---|---|
| Déclarer | Sub Relances() Dim i As Long, n As Long |
| Boucler sur les lignes | For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row |
| Tester une condition | If Cells(i, 5).Value < Date And Cells(i, 6).Value = "" Then |
| Agir | Rows(i).Copy Sheets("Relances").Rows(n + 2): n = n + 1 |
| Fermer | End If Next i End Sub |
3. L'idée
VBA (Visual Basic for Applications) automatise Excel : une macro répète des actions (boucles, conditions, copies, mises en forme). L'enregistreur de macros donne un premier code à adapter. VBA reste utile pour les automatisations locales ; Power Query et les formules dynamiques couvrent aujourd'hui une partie de ces besoins sans code.
Objets
Classeur, feuille, plage, cellule.
Variables
Déclarées avec Dim ; Option Explicit en tête de module.
Boucles et conditions
For… Next, If… Then… End If.
4. La mise en place
Enregistrer. L'enregistreur capture la copie d'une ligne : point de départ du code.
Généraliser. Ajout de la boucle sur toutes les lignes et de la condition « date dépassée et non reçue ».
Bouton. Un bouton sur la feuille lance la macro.
Résultat. 20 minutes chaque matin → 2 secondes ; plus d'oubli.
5. À vous de jouer : vos bases VBA
6. Ce qu'il faut retenir
- Une macro répète des actions : boucles, conditions, copies.
- Partir de l'enregistreur, puis généraliser.
- Préférer Power Query ou les formules quand c'est possible.
Mise en œuvre
- Acteurs
- Utilisateurs avancés
- Durée
- Apprentissage de quelques semaines
- Livrables
- Usage maîtrisé, gains mesurés
- Enregistrer une macroPour découvrir le code.
- Nettoyer et généraliserVariables, boucles, conditions.
- Gérer les erreursMessages clairs.
- DocumenterCommentaires et mode d'emploi.
Exemple d'application
Macro qui génère et envoie par Outlook les relances fournisseurs à partir de la liste des commandes en retard : 2 heures gagnées chaque semaine.
Points de vigilance
- Code non documenté, dépendant d'une seule personne