- Les macros automatisent les actions répétitives dans Excel, réduisant ainsi les erreurs et gagnant du temps.
- Vous pouvez les créer avec l'enregistreur et les améliorer avec VBA pour plus de flexibilité.
- Utilisez des références relatives pour prendre en compte différentes plages et éviter les étapes redondantes.
- Enregistrez au format .xlsm et gérez la sécurité pour exécuter des macros en toute confiance.
Si vous répétez sans cesse des tâches dans Excel, les macros sont votre meilleur allié pour gagner du temps. Grâce à elles, vous pouvez automatiser des séquences complètes d'actions (en savoir plus sur Programmation VBA), du formatage à l'importation de données ou à l'exécution de calculs, et déclenchez-les quand vous le souhaitez d'un clic ou d'un raccourci clavier.
Lorsque vous créez une macro, Excel enregistre vos clics et frappes et les exécute fidèlement. Vous pouvez ensuite modifier le code pour affiner l'exécution et consulter ressources pour ExcelIl est courant de commencer avec l'enregistreur, puis d'ajuster avec VBA, en obtenant plus de contrôle, de flexibilité et zéro erreur due à la négligence.
Qu'est-ce qu'une macro exactement dans Excel ?
Une macro est une liste des instructions qu'Excel exécute dans l'ordre définiCela peut être aussi simple que d'appliquer un style de pourcentage ou aussi complexe que préparer un rapport avec des tableaux croisés dynamiques, formatez-le, créez des feuilles de calcul et envoyez un e-mail dans Outlook. Les macros sont enregistrées dans votre classeur et vous pouvez les exécuter à tout moment.
Nul besoin de savoir programmer pour commencer : l'enregistreur traduit vos actions en code VBA. Cependant, quelques notions de VBA vous permettront de… Créez des fonctions, des formulaires et même des applets personnalisés dans Excel.
Pourquoi utiliser des macros ? De réels avantages
L'objectif principal d'une macro est éviter le travail répétitif et minimiser les erreursSi vous préparez le même rapport chaque mois, une macro vous évite les étapes mécaniques et vous permet de vous concentrer sur ce qui est important.
Parmi ses avantages, on peut citer le gain de temps, l'exécution cohérente (sans oubli) et la possibilité de créer raccourcis et boutons pour accélérer les processusSi vous utilisez Excel occasionnellement, cela ne vaut peut-être pas la peine ; mais si vous l'utilisez quotidiennement, vous remarquerez la différence dès le premier jour.
Activer l'onglet Développeur (Windows et Mac)
Le ruban Développeur est masqué par défaut. Sous Windows, faites un clic droit sur le ruban et sélectionnez « Personnaliser le ruban ». Sélectionnez « Développeur » et acceptez. Ensuite, Vous verrez l'onglet Développeur à côté de Vista.
Sur Mac, accédez à Excel > Préférences > Barres d'outils et ruban. Sous « Onglets principaux », sélectionnez « Développeur » et enregistrez. Vous accéderez ainsi à la barre d'outils. l'enregistreur, l'accès à VBA et aux commandesSi vous débutez, consultez le manipulation de base d'Excel pour vous guider avec le ruban et les options.
Comment créer des macros avec l'enregistreur
L'enregistreur est un excellent point de départ. Sous Programmeur > Enregistrer une macro (ou Alt+T+M+R sous Windows), attribuez-lui un nom explicite. Attention : le nom doit commencer par une lettre. sans espaces ni symboles.
Choisissez l'emplacement d'enregistrement : « Ce classeur » convient dans la plupart des cas. Pour l'avoir toujours à disposition, sélectionnez « Classeur de macros personnelles » et Excel le créera et l'enregistrera. Personnel.xlsb, qui s'ouvre masqué avec Excel.
Vous pouvez également ajouter un raccourci. Pour éviter les conflits (par exemple, la perte de Ctrl+Z), il est recommandé d'utiliser des combinaisons Ctrl+Maj. Vous pouvez également saisir un raccourci. description courte et claire (très utile quand on a beaucoup de macros).
Cliquez sur OK et effectuez les actions que vous souhaitez enregistrer. Par exemple, sélectionnez A1 et appliquez le format « Pourcentage ». Évitez les clics inutiles ou les modifications de sélection qui ne font pas partie du processus prévu, car l'enregistreur enregistre presque tout.
Une fois terminé, arrêtez l'enregistrement. Pour l'exécuter, allez dans Développeur > Macros (ou Alt+F8), choisissez votre macro et appuyez sur Exécuter. Vous verrez comment Excel répétez les étapes exactement dans le même ordre.
Exécutez, modifiez et gérez vos macros
Depuis Programmer > Macros (Alt+F8), vous pouvez exécuter, modifier ou supprimer des macros. Si vous choisissez « Modifier », l'éditeur Visual Basic s'ouvre avec le code enregistré, que vous pouvez modifier. nettoyer et optimiser (comprend généralement des étapes redondantes).
Affecter une macro à un bouton ou à une forme est très pratique : insérez une forme, faites un clic droit > Affecter une macro, choisissez la macro, et voilà. Lorsque vous cliquez sur la forme, sera exécuté instantanément.
Pour l'avoir toujours à portée de main dans la barre d'outils Accès rapide, ouvrez le menu (flèche vers le bas) > Plus de commandes > sous « Commandes disponibles dans », choisissez « Macros », ajoutez les vôtres et modifiez l'icône si vous le souhaitez. Vous aurez alors un bouton permanent même lorsque vous n'êtes pas dans Programmer.
Si vous devez réutiliser la macro dans un autre classeur, vous pouvez copier le module depuis Visual Basic Editor. Ouvrez VBE (Alt+F11), faites glisser le module vers un autre classeur ouvert ou utilisez Exporter/Importer un fichier .bas.
Programmation de macros dans Excel avec l'éditeur Visual Basic (VBA)
Pour aller au-delà de l'enregistreur, ouvrez l'éditeur avec Alt+F11. Insérez un module (Insertion > Module) et créez votre première sous-routine. Le modèle de base est le suivant : Sous-nom() … Fin du sous-nom.
Par exemple, pour afficher un message et écrire une valeur dans A1, vous pouvez commencer par quelque chose de simple. Ainsi, vous comprendrez la structure et comment appeler la macro depuis Excel (Alt+F8) ou l'affecter à un bouton. très peu de lignes:
Sub Primera_Macro()
Range("A1").Value = "Esto de las macros mola."
MsgBox "Hola, querido amigo."
End Sub
Un autre exemple rapide d'application du style pourcentage à la sélection actuelle : cette macro reproduisez ce que vous avez fait avec l'enregistreur, mais écrit directement :
Sub FormatoPorcentaje()
Selection.Style = "Percent"
End Sub
La combinaison idéale est la suivante : enregistrez pour accélérer le processus, puis ouvrez le VBE pour supprimer les étapes inutiles, ajouter des variables, des conditions ou des boucles. Vous transformez ainsi un enregistrement textuel en macro. robuste et réutilisable.
Références absolues et relatives
Par défaut, l'enregistreur crée des macros en mode absolu : il agit toujours sur les mêmes cellules (par exemple, B3), quel que soit l'emplacement d'exécution. Si les données changent de position dans votre processus, cela peut se produire. ne pas être ce dont vous avez besoin.
Avec « Utiliser des références relatives », la macro fonctionne par rapport à la cellule active au démarrage. Par exemple, si vous avez commencé l'enregistrement en B3 et saisi « Prénom », « Nom », etc., en vous déplaçant vers la droite, lorsque vous l'exécutez depuis C4, la macro écrira à partir de C4, D4, E4… relativement.
Un exemple typique : titrer un tableau qui commence parfois en B3 et parfois en C5. En mode absolu, on écrit toujours en B3. En mode relatif, il s'adapte à la cellule de départ sélectionnée.
Erreurs courantes lors de l'enregistrement des processus
Un piège courant consiste à enregistrer une formule pour, disons, trois lignes, en pensant que cela fonctionnera pour des tableaux plus longs. L'enregistreur enregistrera quelque chose d'équivalent à « remplir trois cellules vers le bas", pas "jusqu'au bout de la table".
La solution est de changer d’approche : utiliser plages dynamiques (par exemple, détecter la dernière ligne), les boucles ou la méthode CurrentRegion, ou ajuster la macro dans VBA après l'avoir enregistrée afin que s'adapte à toutes les tailles.
Bonnes pratiques lors de l'enregistrement
Avant l'enregistrement, effectuez le processus manuel plusieurs fois pour le peaufiner. court et précis au lieu d'un seul énorme ; cela les rend plus faciles à entretenir et à combiner.
Évitez les clics inutiles, le défilement inutile et les sélections inutiles. Assurez-vous que le nom et la description de la macro sont clairs afin que vous et vos coéquipiers puissiez vous identifiez instantanément son objectif.
Exécutez des macros de plusieurs manières
En plus de la boîte de dialogue Macros (Alt+F8), vous pouvez lancer des macros avec une forme, un bouton de la barre d'outils Accès rapide ou à l'ouverture du classeur. Excel peut même exécuter la macro depuis d'autres applications Office, ce qui vous permet de automatiser les tâches multi-applications (par exemple, mettre à jour un tableau et envoyer un e-mail via Outlook).
Réfléchissez bien aux raccourcis clavier : si vous attribuez Ctrl+Z à une macro, vous perdrez la possibilité d'annuler une action tant que le classeur est ouvert. C'est pourquoi il est conseillé d'utiliser des combinaisons avec Ctrl + Shift pour éviter les conflits.
Enregistrer des classeurs avec des macros
Lorsqu'un fichier contient du code VBA, enregistrez-le au format .xlsm afin que le code soit conservé et puisse être exécuté. Si vous l'enregistrez au format .xlsx, vous perdrez le projet VBASi vous souhaitez des macros globales, utilisez le classeur de macros personnelles (Personal.xlsb).
Sécurité et activation des macros
Les macros peuvent être bloquées selon vos paramètres de sécurité. Consultez le Centre de gestion de la confidentialité pour les activer de manière sélective et n'activez jamais de macros provenant de sources inconnues. Connaître votre niveau de sécurité vous sera utile. équilibrer la protection et la productivité.
Attribuer des macros aux boutons, aux formes et aux contrôles
Pour permettre à l'utilisateur de les exécuter sans réfléchir, attribuez une macro à un bouton, une forme ou un contrôle. Faites un clic droit sur l'objet > Attribuer une macro > Sélectionner. Vous pouvez également placer une icône sur le ruban ou la barre d'accès rapide et le lier à la macro.
Si vous utilisez des formulaires ou des contrôles ActiveX, vous pouvez leur assigner des macros ou des procédures événementielles (par exemple, en cas de clic). Cela permet des interfaces plus conviviales et des processus guidés.
Exemples de macros utiles (VBA)
Ces exemples illustrent des tâches courantes. Vous pouvez les coller dans un module (Alt+F11 > Insertion > Module) et les personnaliser. N'oubliez pas de signer les registres ou d'ajuster la sécurité si votre organisation l'exige. pouvoir les exécuter sans avertissement.
Copiez le contenu sélectionné vers un autre emplacement sur la même feuille : Sélection. Copier la destination
Sub CopiarSeleccion()
If TypeName(Selection) = "Range" Then
Selection.Copy Destination:=Selection.Offset(0, 2)
Else
MsgBox "Selecciona un rango de celdas primero."
End If
End Sub
Imprimer la feuille active : ActiveSheet.PrintOut
Sub ImprimirHojaActual()
ActiveSheet.PrintOut
End Sub
Enregistrez le fichier en tant que classeur prenant en charge les macros (.xlsm) : ActiveWorkbook.Enregistrer sous
Sub GuardarComoXlsm()
Dim ruta As String
ruta = ThisWorkbook.Path & Application.PathSeparator & "LibroConMacros.xlsm"
ActiveWorkbook.SaveAs Filename:=ruta, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Formater une plage (ajuster la plage selon vos besoins) : Avec Gamme(…)
Sub FormatoRango()
With Range("A1:D10")
.Font.Bold = True
.Interior.Color = RGB(230, 230, 250)
.Borders.LineStyle = xlContinuous
End With
End Sub
Rechercher une valeur dans une plage et afficher la première correspondance : Plage(…).Trouver
Sub BuscarValor()
Dim celda As Range
Dim valor As String
valor = InputBox("¿Qué valor quieres buscar?")
If valor = "" Then Exit Sub
Set celda = Range("A1:D1000").Find(What:=valor, LookIn:=xlValues, LookAt:=xlPart)
If Not celda Is Nothing Then
MsgBox "Encontrado en: " & celda.Address
celda.Select
Else
MsgBox "No se encontró el valor especificado."
End If
End Sub
Cas pratique : mise en forme en pourcentage
Enregistrement : Démarrez l'enregistrement, nommez-le, choisissez son emplacement de sauvegarde et, si nécessaire, attribuez-lui un raccourci et une description. Sélectionnez les cellules et appliquez « Pourcentage » depuis le menu Démarrer. Arrêtez l'enregistrement, puis relancez-le avec Alt+F8. Pour une lecture simplifiée, utilisez Selection.Style = "Pourcentage" en VBA.
Conseil : Ne changez pas de cellule sans raison pendant l'enregistrement. Ces entrées et sorties sont enregistrées et peuvent être ralentir et salir la macro.
Automatisez les tâches longues : les petites macros sont meilleures
Si votre processus comporte de nombreuses étapes, envisagez de le décomposer en plusieurs macros plus petites et de les appeler en chaîne. Cela facilite la maintenance et vous permet de réutiliser les blocs et simplifie le débogage.
Par exemple, une macro pour préparer les données, une autre pour les formater, une autre pour générer une feuille d'impression et une autre pour exporter au format PDF ou envoyer par courrierVous pouvez les appeler un par un ou tous à la fois.
Modifier et nettoyer le code enregistré
L'enregistreur capture « tout » : sélections, clics et changements de tabulation. À l'ouverture du VBE, il supprime les sélections inutiles (Sélection/Sélection) et les remplace par des références directes (par exemple, Plage("A1").Valeur = …) et regroupe les formats dans des blocs Avec/Fin Avec.
Il ajoute également des variables et une gestion des erreurs de base. Quelques instructions If et des vérifications simples empêchent les erreurs lorsque la plage est vide ou la sélection n'est pas celle attendue.
Questions fréquentes
Comment créer un formulaire (UserForm) dans Excel ? Ouvrez l'éditeur Visual Basic (Alt+F11), accédez à Insertion > UserForm et ajoutez des contrôles (zones de texte, boutons, etc.). Vous pouvez les afficher avec une macro :
Sub MostrarFormulario()
UserForm1.Show
End Sub
À partir de là, attribuez des procédures aux événements des contrôles (par exemple, clic sur un bouton) afin que exécutez la logique dont vous avez besoin.
Comment protéger/déprotéger une feuille avec des macros ? Utilisez ces routines pour modifier votre mot de passe à votre convenance. Elles vous permettent : activer ou supprimer la protection en un clic:
Sub ProtegerHoja()
ActiveSheet.Protect Password:="segura", AllowFiltering:=True
End Sub
Sub DesprotegerHoja()
ActiveSheet.Unprotect Password:="segura"
End Sub
Comment supprimer une macro ? Accédez à Programmeur > Macros, sélectionnez la macro et appuyez sur Supprimer. Pour supprimer tout le code d'un module, ouvrez VBE (Alt+F11), localisez le module dans le projet, faites un clic droit, puis sélectionnez Supprimer. Supprimer le module (vous pouvez d'abord l'exporter si vous souhaitez le sauvegarder).
Dernière remarque pratique : si vous formatez un rapport mensuel où les clients endettés doivent apparaître en rouge et en gras, enregistrez la séquence une fois, ajustez le code VBA pour l'appliquer à la plage appropriée (en utilisant la détection de la dernière ligne ou des filtres), puis enregistrez la macro dans votre classeur de macros personnel. La prochaine fois, un raccourci ou un bouton suffira pour appliquer la mise en forme instantanément. zéro panne et en quelques secondes.
Table des matières
- Qu'est-ce qu'une macro exactement dans Excel ?
- Pourquoi utiliser des macros ? De réels avantages
- Activer l'onglet Développeur (Windows et Mac)
- Comment créer des macros avec l'enregistreur
- Exécutez, modifiez et gérez vos macros
- Programmation de macros dans Excel avec l'éditeur Visual Basic (VBA)
- Références absolues et relatives
- Erreurs courantes lors de l'enregistrement des processus
- Bonnes pratiques lors de l'enregistrement
- Exécutez des macros de plusieurs manières
- Enregistrer des classeurs avec des macros
- Sécurité et activation des macros
- Attribuer des macros aux boutons, aux formes et aux contrôles
- Exemples de macros utiles (VBA)
- Cas pratique : mise en forme en pourcentage
- Automatisez les tâches longues : les petites macros sont meilleures
- Modifier et nettoyer le code enregistré
- Questions fréquentes