
Si vous utilisez Excel régulièrement, vous êtes probablement déjà habitué à écrire des formules à l'aide de fonctions telles que SUM, VLOOKUP ou IF. Vous vous êtes peut-être même aventuré à enregistrer des macros pour accélérer le formatage répétitif. Mais à un certain stade, les formules de base et l'enregistreur de macros ne suffisent plus. Pour véritablement libérer la puissance d'Excel et automatiser des flux de travail complexes, vous devez passer de l'autre côté du décor et écrire votre propre code.
Bienvenue dans Visual Basic pour Applications (VBA), le langage de programmation intégré d'Excel. Apprendre VBA vous permet d'interagir avec Excel à un niveau fondamental, transformant une feuille de calcul statique en une application logicielle dynamique. Dans ce tutoriel, nous aborderons les concepts fondamentaux de VBA (les variables, les boucles et les conditions) et vous guiderons étape par étape dans l'écriture de votre tout premier programme fonctionnel.
Avant de vous plonger dans le code, vous vous demandez peut-être pourquoi vous devriez vous donner la peine d'apprendre un langage de programmation alors qu'Excel regorge déjà de fonctionnalités puissantes. Si vous débutez, nous vous recommandons vivement de maîtriser les bases en premier lieu. Vous pouvez consulter notre guide de démarrage complet d'Excel pour les débutants 2025 pour vous assurer d'avoir des bases solides.
Cependant, une fois que vous ĂŞtes Ă l'aise avec les outils natifs d'Excel, VBA offre des avantages incroyables :
Pour écrire votre premier programme Excel, vous devez avoir accès à l'onglet Développeur, qui est masqué par défaut.
Vous verrez désormais l'onglet Développeur sur votre ruban. Cet onglet est votre centre de commande pour tout ce qui concerne la programmation. À partir d'ici, cliquez sur le bouton Visual Basic (ou appuyez sur Alt + F11 sur votre clavier) pour ouvrir l'éditeur Visual Basic (VBE). C'est l'environnement dans lequel vous allez écrire, éditer et tester votre code.
Lorsque vous ouvrez VBE pour la première fois, son apparence peut sembler un peu intimidante, rappelant les logiciels des années 1990. Ne vous inquiétez pas ; vous n'avez besoin de vous concentrer que sur quelques zones clés :
Pour commencer à taper du code, vous devez insérer un module. Faites un clic droit sur votre classeur dans l'explorateur de projets, sélectionnez Insertion, puis cliquez sur Module. Un écran blanc vierge apparaîtra. Vous êtes maintenant prêt à coder.
Avant d'écrire le programme final, vous devez comprendre les trois piliers de la programmation de base en VBA : les variables, les conditions et les boucles.
Considérez une variable comme un conteneur de stockage temporaire dans la mémoire de votre ordinateur. Vous utilisez des variables pour conserver des données qui pourraient changer pendant l'exécution de votre programme. Dans VBA, la bonne pratique consiste à « déclarer » vos variables à l'aide de l'instruction Dim (abréviation de Dimension), ce qui indique à Excel quel type de données le conteneur va contenir.
| Type de données | Ce qu'il contient | Exemple de déclaration |
|---|---|---|
| String | Caractères de texte. | Dim employeeName As String |
| Integer | Nombres entiers compris entre -32 768 et 32 767. | Dim rowCount As Integer |
| Long | Grands nombres entiers (Ă toujours utiliser pour le comptage de lignes dans les versions modernes d'Excel). | Dim lastRow As Long |
| Double | Nombres avec décimales (par ex., devises, pourcentages). | Dim totalSales As Double |
| Boolean | Valeurs True (Vrai) ou False (Faux). | Dim isComplete As Boolean |
| Range | Un objet représentant une cellule ou un groupe de cellules. | Dim targetCell As Range |
VBA fonctionne en manipulant des « Objets ». Excel possède une hiérarchie stricte d'objets dans laquelle vous devez naviguer pour indiquer à VBA exactement ce qu'il faut modifier. La hiérarchie va du plus général au plus spécifique :
Application > Workbook > Worksheet > Range
Par exemple, si vous souhaitez modifier la valeur de la cellule A1 sur la Feuil1, l'instruction VBA ressemblerait techniquement Ă ceci : Application.Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Value = "Hello". Heureusement, si vous travaillez dans le classeur actif, vous pouvez raccourcir cela Ă simplement Range("A1").Value = "Hello".
Tout comme la fonction native IF (SI), les conditions permettent à votre code de prendre des décisions en fonction de critères. Si une condition est remplie, le code fait une chose ; sinon, il en fait une autre.
If Range("A1").Value > 100 Then
Range("B1").Value = "Over Budget"
Else
Range("B1").Value = "On Track"
End If
Les boucles sont la véritable magie de VBA. Elles vous permettent d'exécuter le même bloc de code encore et encore sans l'écrire des centaines de fois. La boucle la plus courante est la boucle For...Next.
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "Test Data"
Next i
Dans cet exemple, le code tournera 10 fois dans la boucle, remplissant les cellules A1 à A10 (Ligne i, Colonne 1) avec l'expression « Test Data ».
Rassemblons tous ces concepts pour résoudre un problème concret. Imaginez que vous avez une liste de montants de ventes dans la Colonne A, de la ligne 2 à la ligne 20. Vous souhaitez écrire un programme qui parcourt ces nombres, vérifie si le montant des ventes est supérieur à 1 000 $, et si c'est le cas, écrit « High Performer » dans la Colonne B et surligne la cellule en jaune.
Tapez le code suivant exactement tel qu'il apparaît dans votre module vierge :
Sub AnalyzeSales()
' 1. Declare variables
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
' 2. Define the worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' 3. Find the last row with data in Column A
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 4. Loop from row 2 to the last row
For i = 2 To lastRow
' 5. Apply the condition
If ws.Cells(i, 1).Value > 1000 Then
' Mark as high performer in Column B
ws.Cells(i, 2).Value = "High Performer"
' Highlight Column B cell yellow
ws.Cells(i, 2).Interior.Color = vbYellow
' Make the text bold
ws.Cells(i, 2).Font.Bold = True
Else
' If not over 1000, leave standard text
ws.Cells(i, 2).Value = "Standard"
End If
Next i
' 6. Alert the user the macro is done
MsgBox "Sales analysis is complete!", vbInformation
End Sub
Sub AnalyzeSales() : « Sub » signifie Sous-routine (Subroutine en anglais). Cela crée une nouvelle macro nommée AnalyzeSales.') devient vert. Ce sont des commentaires pour vous ; l'ordinateur les ignore.Dim est utilisé pour déclarer notre feuille de calcul, notre dernière ligne (Long) et notre variable compteur pour la boucle (Long).Set ws = ... : Parce qu'une feuille de calcul est un Objet, nous utilisons le mot « Set » pour l'assigner à notre variable.lastRow = ... : C'est une astuce VBA classique. Le code va tout en bas de la feuille de calcul (Rows.Count), regarde vers le haut (xlUp) jusqu'à ce qu'il rencontre des données, et renvoie le numéro de cette ligne. Cela rend notre code dynamique, capable de s'adapter quelle que soit la quantité de données ajoutées !For i = 2 To lastRow : Commence notre boucle à la ligne 2 (en ignorant les en-têtes) et se termine à la dernière ligne, quelle qu'elle soit.ws.Cells(i, 1) fait référence à la cellule de la ligne i, colonne 1 (Colonne A). Nous vérifions si cette valeur est supérieure à 1000.Value, Interior.Color et Font.Bold.Next i : Indique à Excel de boucler et d'incrémenter i de 1 pour vérifier la ligne suivante.MsgBox : Un repère visuel agréable qui déclenche une fenêtre pop-up pour informer l'utilisateur que le code a terminé son exécution avec succès.Pour exécuter votre code, vous pouvez cliquer n'importe où entre les lignes Sub et End Sub dans VBE et appuyer sur F5 sur votre clavier, ou cliquer sur le triangle vert « Lecture » dans la barre d'outils supérieure.
Astuce de pro pour le débogage : Au lieu d'appuyer sur F5, essayez d'appuyer sur F8 à plusieurs reprises. F8 vous permet d'exécuter votre code ligne par ligne. Il surligne la ligne de code active en jaune, vous permettant d'observer exactement ce qu'Excel fait en arrière-plan. C'est la méthode ultime pour apprendre et résoudre les problèmes lorsqu'un programme ne fonctionne pas correctement.
Félicitations ! Vous venez d'écrire votre premier logiciel d'automatisation. En comprenant les variables, les boucles et les conditions, vous avez débloqué les bases nécessaires pour automatiser des rapports avec Excel VBA. Avec de la pratique, vous pourrez étendre cette logique pour parcourir des classeurs entiers, fusionner les données de plusieurs fichiers et nettoyer des ensembles de données complexes en un seul clic.
En poursuivant votre apprentissage, gardez à l'esprit que VBA n'est pas le seul outil de la boîte à outils moderne des données. Si vous préférez les interfaces visuelles au codage, vous devriez peut-être vous tourner vers l'automatisation Excel sans VBA : Power Automate.
De plus, si écrire du code de A à Z, déchiffrer les erreurs VBA ou créer des formules imbriquées complexes comme INDEX et MATCH vous semble accablant, vous n'êtes pas obligé de lutter seul. Vous pouvez toujours utiliser GPTExcel. Décrivez simplement ce dont vous avez besoin en langage naturel (par exemple, « Écris une macro VBA qui efface toutes les cellules jaunes sur la Feuil1 »), et l'assistant IA générera instantanément le code ou la formule exacte.
Aucune expérience préalable en programmation n'est nécessaire. VBA a été spécifiquement conçu pour être accessible aux professionnels de l'entreprise. Comprendre la logique de base d'Excel, comme le fonctionnement de la fonction IF, vous donne une excellente longueur d'avance pour apprendre la syntaxe VBA.
Par défaut, les classeurs Excel standards (.xlsx) ne peuvent pas stocker de macros. Lorsque vous écrivez du code VBA, vous devez enregistrer votre fichier en tant que « Classeur Excel prenant en charge les macros » (.xlsm). Si vous essayez de l'enregistrer en tant que classeur standard, Excel vous avertira que votre code sera supprimé.
Bien que Microsoft investisse massivement dans Power Automate (basé sur le cloud) et ait récemment intégré Python dans Excel, VBA ne va pas disparaître de sitôt. Des millions d'entreprises s'appuient sur des macros VBA existantes. Il reste le moyen le plus rapide et le plus fiable d'exécuter une automatisation locale au niveau du bureau à l'intérieur d'un fichier Excel.
Pour rendre votre macro plus facile à utiliser, allez dans l'onglet Développeur, cliquez sur Insérer et sélectionnez l'icône Bouton sous Contrôles de formulaire. Dessinez le bouton sur votre feuille de calcul. Une invite apparaîtra immédiatement vous demandant d'affecter une macro ; sélectionnez votre nouvelle macro dans la liste, cliquez sur OK, et vous pourrez désormais exécuter votre code d'un simple clic.
Découvrez comment automatiser vos tâches Excel sans VBA avec Power Automate. Apprenez à créer des flux, traiter vos données et connecter d'autres applications.
Découvrez comment créer des systèmes de reporting automatisés dans Excel à l'aide de VBA. Apprenez à extraire des données, insérer des formules, formater des cellules et exporter des rapports grâce à du code étape par étape.
Commencez à programmer dans Excel avec VBA. Découvrez l'onglet Développeur, les variables, les boucles, les conditions et comment écrire votre première macro fonctionnelle de A à Z.