Macros VBA : Guide complet pour créer et utiliser vos automatisations Excel
Une macro est une séquence d’actions enregistrée, le VBA est le langage qui la rend personnalisable.
- Macro enregistrée : idéale pour les débutants, génère le script automatiquement.
- Code VBA manuscrit : langage complet pour des automatisations sur mesure.
- Le fichier contenant une macro porte l’extension obligatoire .xlsm.
- VBA peut interagir avec d’autres applications comme Word ou Outlook.
- La macro enregistrée reste une entrée simpliste comparée au VBA performant.
Qu’est-ce qu’une macro et que signifie VBA ?
- Macro = séquence d’instructions enregistrée par l’utilisateur pour automatiser des actions répétitives dans Excel.
- VBA (Visual Basic for Applications) = langage de programmation intégré à Excel qui permet d’écrire, lire et modifier ces instructions.
- Macro = enregistrement sans code : l’outil enregistreur capture vos clics et frappes, puis génère automatiquement le script correspondant.
- VBA = code personnalisable et puissant : vous pouvez écrire manuellement des scripts complexes avec des boucles, des conditions et des variables.
Une macro est avant tout un fichier contenant un programme. Ce programme peut être créé de deux façons : soit en utilisant l’enregistreur intégré d’Excel (idéal pour les débutants), soit en tapant directement du code VBA dans l’éditeur dédié. Le fichier qui contient une macro porte l’extension obligatoire .xlsm pour être reconnu et exécuté par Excel.
Le VBA est bien plus qu’un simple complément de la macro enregistrée. C’est un langage complet qui permet de dialoguer avec tous les objets d’Excel : cellules, classeurs, graphiques. Grâce à lui, vous pouvez créer des automatisations sur mesure, adapter les actions à chaque situation et interagir avec d’autres applications (Word, Outlook) via des objets programmables. En résumé, la macro enregistrée est l’entrée simpliste dans l’automatisation, tandis que le code VBA en est la version sur-mesure et performante.
Comment créer et enregistrer sa première macro dans Excel ?

Activer l’onglet Développeur pour accéder aux macros
Avant de pouvoir créer une macro, il faut rendre visibles les outils nécessaires. L’onglet Développeur n’apparaît pas par défaut dans le ruban d’Excel. Son activation ne prend que quelques clics et reste définitive pour toutes les sessions.
- Fichier → Options → Personnaliser ruban : ouvrez le menu Fichier, cliquez sur Options, puis sélectionnez l’onglet Personnaliser le ruban.
- Cocher l’onglet Développeur : dans la liste de droite, cochez la case Développeur parmi les onglets principaux.
- Onglet visible en haut : validez avec OK. L’onglet Développeur apparaît désormais dans le ruban, entre Affichage et Aide.
Étapes pour enregistrer une macro simple
Une fois l’onglet Développeur activé, l’enregistrement d’une macro se fait en quelques minutes sans écrire une seule ligne de code. L’enregistreur de macros capture chaque action de la souris et du clavier pour les rejouer plus tard.
- Ouvrir un classeur vierge : commencez sur une feuille propre, sans données existantes, pour éviter les interférences.
- Onglet Développeur → Enregistrer une macro : cliquez sur le bouton Enregistrer une macro dans le groupe Code.
- Nommer la macro + raccourci : donnez un nom explicite (ex. « Nettoyage »). Vous pouvez aussi assigner un raccourci clavier (par exemple Ctrl+Shift+N) pour la lancer rapidement.
- Exécuter les actions souhaitées : effectuez les manipulations que vous voulez automatiser : suppression d’espaces inutiles, mise en forme, conversion de texte en nombre, etc.
- Arrêter l’enregistrement : retournez dans l’onglet Développeur et cliquez sur Arrêter l’enregistrement. Excel a enregistré votre séquence.
- Sauvegarder au format .xlsm obligatoire : pour conserver la macro, enregistrez le fichier au format Classeur Excel prenant en charge les macros (.xlsm). Sans cela, votre travail sera perdu.
Automatiser des tâches répétitives avec les macros VBA
Une fois votre macro enregistrée, un simple clic suffit pour répéter exactement toutes les actions que vous avez effectuées. Plus besoin de refaire manuellement les manipulations de formatage, de mise en forme ou d’importation de données.
Pour prolonger la visite
Pour tirer le meilleur parti de vos données automatisées, sachez que la création d’un tableau Excel s’apprend en quelques étapes simples, avec en-têtes et saisie ligne par ligne.
Si l'automatisation vous intéresse au-delà d'Excel, le marketing automation applique la même logique conditionnelle aux tâches répétitives du marketing.
L’automatisation des tâches répétitives libère un temps considérable. Que ce soit pour nettoyer des cellules, appliquer des formules ou structurer des rapports, la macro exécute l’ensemble des opérations en une fraction de seconde. Le code VBA permet d’aller bien plus loin que l’enregistreur, en intégrant des boucles et des conditions pour des solutions sur mesure.
Quelle est la différence entre une macro enregistrée et du code VBA manuscrit ?
| Critère | Macro enregistrée | Code VBA manuscrit |
|---|---|---|
| Méthode de création | Enregistreur intégré à Excel | Éditeur VBE (Visual Basic Editor) |
| Compétence requise | Aucune connaissance en programmation | Compréhension de la syntaxe VBA |
| Flexibilité | Limitée aux actions enregistrées | Totale : boucles, conditions, variables |
| Vitesse d’exécution | Plus lente (code souvent redondant) | Plus rapide (code optimisé) |
| Gestion des erreurs | Aucune (s’arrête en cas d’erreur) | Contrôle possible avec On Error |
| Interaction externe | Inexistante | Possible via objets (Word, Outlook) |
La macro enregistrée est parfaite pour un débutant : elle capture chaque clic et chaque frappe au clavier, puis les rejoue à l’identique. Cela fonctionne très bien pour des tâches linéaires comme un formatage répétitif ou l’import d’un fichier standard. Cependant, si une cellule change de place ou si une condition inattendue survient, la macro échoue sans prévenir.
À l’inverse, le code VBA manuscrit offre un contrôle total. Vous pouvez écrire des boucles pour parcourir des milliers de lignes, des conditions pour prendre des décisions (If…Then…Else), et des variables pour stocker des valeurs temporaires. Le code qui en résulte est plus concis et s’exécute beaucoup plus rapidement, car il ne reproduit pas le bruit de fond des actions inutiles enregistrées.
En pratique, la meilleure approche pour un débutant consiste à commencer par l’enregistreur pour observer le code généré, puis à modifier ce code dans l’éditeur VBE pour y ajouter de la logique. C’est ainsi que vous passez d’une simple macro à un véritable programme sur mesure.
Écrire et personnaliser son propre code VBA
Après avoir exploré les limites de l’enregistreur, passer à l’écriture manuelle du code VBA vous ouvre un champ de possibilités quasi infini. Vous ne dépendez plus des actions enregistrées : vous dictez exactement ce que votre programme doit faire, dans quel ordre, et sous quelles conditions.
Les bases de la syntaxe VBA
Pour écrire du code stable et efficace, quelques éléments fondamentaux sont à connaître. Chaque bloc d’instruction commence par Sub (pour « Subroutine ») et se termine par End Sub. Entre les deux, vous définissez la logique de votre macro.
- Début par Sub et fin par End Sub : toute procédure VBA s’encadre entre ces deux instructions, qui délimitent le début et la fin du code exécutable
- Variables déclarées avec Dim : Dim (pour « Dimension ») permet de réserver une zone mémoire en lui donnant un nom et un type (comme Integer, String ou Boolean)
- Boucles For/Next et If/Then/Else : les boucles répètent une action sur une plage de cellules, tandis que les conditions appliquent un traitement différent selon une valeur
- Objets : Range, Cells, Worksheet : vous manipulez Excel via ses objets Range(« A1 ») pour une cellule nommée, Cells(1,1) par coordonnées, et Worksheets(« Feuil1 ») pour sélectionner une feuille
Exemple concret : une sous-routine personnalisée
Prenons un cas fréquent : un fichier client contient des cellules avec des espaces superflus. Plutôt que de nettoyer manuellement chaque ligne, écrivons une sous-routine qui le fait en un clic.
- Ouvrir l’éditeur Alt+F11 : le raccourci Alt+F11 ouvre l’éditeur VBA, où vous allez saisir le code
- Insérer un module : dans le menu « Insertion », choisissez « Module » c’est là que vous écrirez votre code personnalisé
- Écrire Sub NettoyageDonnées() : tapez Sub NettoyageDonnées() puis appuyez sur Entrée ; l’éditeur ajoute automatiquement « End Sub »
- Boucle sur chaque cellule : utilisez For Each cellule In Selection pour parcourir toutes les cellules que vous aurez sélectionnées avant d’exécuter la macro
- Condition pour supprimer espaces : à l’intérieur de la boucle, écrivez If cellule.Value « » Then cellule.Value = Trim(cellule.Value) pour remplacer chaque valeur par sa version sans espaces au début et à la fin
Cette sous-routine illustre la logique de base : une boucle parcourt les cellules, une condition vérifie si elles sont non vides, et une instruction de nettoyage s’exécute. Le tout en trois lignes de code efficaces.
{
« @context »: « https://schema.org »,
« @type »: « Article »,
« headline »: « Macros VBA : Guide complet pour créer et utiliser vos automatisations Excel »,
« description »: « Une macro est une séquence d’actions enregistrée, le VBA est le langage qui la rend personnalisable. »,
« datePublished »: « 2026-08-01 »,
« author »: {
« @type »: « Organization »,
« name »: « alsatemporaire.fr »
},
« publisher »: {
« @type »: « Organization »,
« name »: « alsatemporaire.fr »,
« url »: « https://alsatemporaire.fr »
}
}
{
« @context »: « https://schema.org »,
« @type »: « FAQPage »,
« mainEntity »: [
{
« @type »: « Question »,
« name »: « Qu’est-ce qu’une macro et que signifie VBA ? »,
« acceptedAnswer »: {
« @type »: « Answer »,
« text »: « Macro = séquence d’instructions enregistrée par l’utilisateur pour automatiser des actions répétitives dans Excel.\n VBA (Visual Basic for Applications) = langage de programmation intégré à Excel qui permet d’écrire, lire et modifier ces instructions.\n Macro = enregistrement sans code : l’outil enr »
}
},
{
« @type »: « Question »,
« name »: « Comment créer et enregistrer sa première macro dans Excel ?\n\n\nActiver l’onglet Développeur pour accéder aux macros »,
« acceptedAnswer »: {
« @type »: « Answer »,
« text »: « Avant de pouvoir créer une macro, il faut rendre visibles les outils nécessaires. L’onglet Développeur n’apparaît pas par défaut dans le ruban d’Excel. Son activation ne prend que quelques clics et reste définitive pour toutes les sessions. »
}
},
{
« @type »: « Question »,
« name »: « Étapes pour enregistrer une macro simple\nUne fois l’onglet Développeur activé, l’enregistrement d’une macro se fait en quelques minutes sans écrire une seule ligne de code. L’enregistreur de macros capture chaque action de la souris et du clavier pour les rejouer plus tard.\n\n\nOuvrir un classeur vierge : commencez sur une feuille propre, sans données existantes, pour éviter les interférences.\nOnglet Développeur → Enregistrer une macro : cliquez sur le bouton Enregistrer une macro dans le groupe Code.\nNommer la macro + raccourci : donnez un nom explicite (ex. « Nettoyage »). Vous pouvez aussi assigner un raccourci clavier (par exemple Ctrl+Shift+N) pour la lancer rapidement.\nExécuter les actions souhaitées : effectuez les manipulations que vous voulez automatiser : suppression d’espaces inutiles, mise en forme, conversion de texte en nombre, etc.\nArrêter l’enregistrement : retournez dans l’onglet Développeur et cliquez sur Arrêter l’enregistrement. Excel a enregistré votre séquence.\nSauvegarder au format .xlsm obligatoire : pour conserver la macro, enregistrez le fichier au format Classeur Excel prenant en charge les macros (.xlsm). Sans cela, votre travail sera perdu.\n\n\nAutomatiser des tâches répétitives avec les macros VBA\n\nUne fois votre macro enregistrée, un simple clic suffit pour répéter exactement toutes les actions que vous avez effectuées. Plus besoin de refaire manuellement les manipulations de formatage, de mise en forme ou d’importation de données.\n\nL’automatisation des tâches répétitives libère un temps considérable. Que ce soit pour nettoyer des cellules, appliquer des formules ou structurer des rapports, la macro exécute l’ensemble des opérations en une fraction de seconde. Le code VBA permet d’aller bien plus loin que l’enregistreur, en intégrant des boucles et des conditions pour des solutions sur mesure.\n\nQuelle est la différence entre une macro enregistrée et du code VBA manuscrit ?\n\n\n\n \n Critère\n Macro enregistrée\n Code VBA manuscrit\n \n \n Méthode de création\n Enregistreur intégré à Excel\n Éditeur VBE (Visual Basic Editor)\n \n \n Compétence requise\n Aucune connaissance en programmation\n Compréhension de la syntaxe VBA\n \n \n Flexibilité\n Limitée aux actions enregistrées\n Totale : boucles, conditions, variables\n \n \n Vitesse d’exécution\n Plus lente (code souvent redondant)\n Plus rapide (code optimisé)\n \n \n Gestion des erreurs\n Aucune (s’arrête en cas d’erreur)\n Contrôle possible avec On Error\n \n \n Interaction externe\n Inexistante\n Possible via objets (Word, Outlook)\n \n\n\n\nLa macro enregistrée est parfaite pour un débutant : elle capture chaque clic et chaque frappe au clavier, puis les rejoue à l’identique. Cela fonctionne très bien pour des tâches linéaires comme un formatage répétitif ou l’import d’un fichier standard. Cependant, si une cellule change de place ou si une condition inattendue survient, la macro échoue sans prévenir.\n\nÀ l’inverse, le code VBA manuscrit offre un contrôle total. Vous pouvez écrire des boucles pour parcourir des milliers de lignes, des conditions pour prendre des décisions (If…Then…Else), et des variables pour stocker des valeurs temporaires. Le code qui en résulte est plus concis et s’exécute beaucoup plus rapidement, car il ne reproduit pas le bruit de fond des actions inutiles enregistrées.\n\nEn pratique, la meilleure approche pour un débutant consiste à commencer par l’enregistreur pour observer le code généré, puis à modifier ce code dans l’éditeur VBE pour y ajouter de la logique. C’est ainsi que vous passez d’une simple macro à un véritable programme sur mesure.\n\nÉcrire et personnaliser son propre code VBA »,
« acceptedAnswer »: {
« @type »: « Answer »,
« text »: « Après avoir exploré les limites de l’enregistreur, passer à l’écriture manuelle du code VBA vous ouvre un champ de possibilités quasi infini. Vous ne dépendez plus des actions enregistrées : vous dictez exactement ce que votre programme doit faire, dans quel ordre, et sous quelles conditions. »
}
}
]
}
