VBA (Sub / Range / Cells)
VBA est le langage de programmation d'Excel, édité avec Alt+F11. Une procédure Sub enchaîne des instructions sur des cellules (Range, Cells) pour automatiser un traitement récurrent.
- VBA
- Sub
- Range
- Cells
- Option Explicit
- MsgBox
Syntaxe
Option ExplicitSub NomMacro() Dim variable As Type Range("A1").Value = ... Cells(ligne, colonne).Value = ...End SubExemple
Option ExplicitSub SignalerGrosMontants() Dim derniere As Long, i As Long, nb As Long derniere = Cells(Rows.Count, "C").End(xlUp).Row For i = 2 To derniere If Cells(i, 3).Value > 1000 Then Cells(i, 3).Interior.Color = vbYellow nb = nb + 1 End If Next i MsgBox nb & " montants supérieurs à 1 000 € signalés"End Sub' → les montants de la colonne C au-delà de 1 000 passent en jaune, puis un message donne leur nombreÀ retenir
- En VBA, les arguments se séparent par des virgules, quelle que soit la langue d'Excel : Cells(ligne, colonne), Range("A1", "C10"). Le point-virgule ne sert qu'aux formules de feuille d'un Excel français.
- Placez Option Explicit en tête de module et déclarez chaque variable avec Dim (Dim i As Long) : une faute de frappe dans un nom devient une erreur signalée au lieu d'une variable vide. Outils > Options > Déclaration des variables obligatoire l'ajoute automatiquement.
- Piège : Range("A1") vise la feuille active au moment de l'exécution. Qualifiez la feuille, par exemple ThisWorkbook.Worksheets("Ventes").Range("A1"), pour ne pas écrire dans le mauvais onglet.
- Une formule écrite par VBA avec .Formula utilise la syntaxe anglaise ("=SUM(A1:A10)") ; .FormulaLocal accepte la syntaxe française ("=SOMME(A1:A10)").
- Une apostrophe (') commente la fin de la ligne ; F8 exécute le code pas à pas pour le déboguer.
Voir aussi
- Macros (enregistreur et sécurité)L'enregistreur de macros traduit vos clics en code VBA rejouable. C'est la porte d'entrée de l'automatisation pour une mise en forme ou un nettoyage répété chaque semaine.
- Office ScriptsOffice Scripts automatise Excel en TypeScript, à commencer par Excel pour le web où VBA ne s'exécute pas. Un script s'enregistre ou s'écrit, se partage et se lance depuis Power Automate.
- Langage MLe langage M est le code que Power Query écrit pour chaque requête. Le lire permet de corriger une étape, de paramétrer un chemin ou d'écrire une transformation absente de l'interface.