KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment enregistrer et utiliser vos macros VBA dans tous les classeurs Excel ?

AuteurZhoumandy Date de modification

Dans de nombreuses situations, vous aurez besoin d’utiliser la même macro VBA à plusieurs reprises dans différents classeurs Excel, notamment pour automatiser des calculs répétitifs, formater des données ou exécuter des fonctions personnalisées telles que la conversion de chiffres en mots. Le défi courant ? Par défaut, les macros sont stockées uniquement dans le classeur où elles ont été créées, ce qui rend leur accès et leur réutilisation impossibles dans de nouveaux documents. Heureusement, Excel propose plusieurs méthodes flexibles pour rendre une macro VBA disponible de manière globale, éliminant ainsi la nécessité de recopier le code à chaque création d’un nouveau classeur. Ce tutoriel vous guide pas à pas à travers différentes approches efficaces pour que vos macros VBA soient instantanément accessibles dans tous vos classeurs — gagnant ainsi en productivité et fluidifiant votre flux de travail.

Capture d’écran montrant la boîte de dialogue Compléments dans Excel

Enregistrer et utiliser le code VBA dans tous les classeurs
Méthode du classeur personnel de macros


Enregistrer et utiliser le code VBA dans tous les classeurs

Par exemple, imaginez pouvoir convertir des nombres en leurs équivalents en mots anglais grâce à un code VBA personnalisé, et que cette fonctionnalité reste toujours accessible, quel que soit le classeur sur lequel vous travaillez. En adoptant la bonne approche, vous pouvez enregistrer vos modules VBA de façon à les réutiliser à tout moment dans Excel — une solution particulièrement pratique pour vos fonctions personnalisées ou automatisations que vous souhaitez avoir à portée de main à chaque session, sans avoir à dupliquer le code dans plusieurs fichiers.

Pour ce faire, vous pouvez empaqueter votre code VBA dans un complément Excel personnalisé. Une fois activé dans Excel, ce complément rendra votre fonctionnalité personnalisée disponible en tant que fonction globale.

Suivez ces étapes :

1. Appuyez sur Alt + F11 dans Excel pour ouvrir la fenêtre « Microsoft Visual Basic pour Applications ».

2. Dans l’éditeur VBA, cliquez sur Insertion > Module, puis collez la macro suivante dans la fenêtre du module nouvellement créé.

Code VBA : Convertir Convertir en mots

Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function

3. Cliquez maintenant sur l’icône « Enregistrer » située dans le coin supérieur gauche de la fenêtre ou appuyez simplement sur Ctrl + S pour ouvrir la boîte de dialogue « Enregistrer sous ».
Capture d’écran montrant l’option Enregistrer dans la fenêtre VBA

4. Dans la fenêtre « Enregistrer sous », saisissez le nom de fichier souhaité dans le champ « Nom de fichier ». Dans la liste déroulante « Spécifier le format d'enregistrement », veillez à sélectionner Complément Excel (*.xlam).
Capture d’écran montrant la boîte de dialogue Enregistrer sous avec la sélection du type Complément Excel (*.xlam)

5. Cliquez sur le bouton « Enregistrer » pour enregistrer votre classeur au format de complément Excel et créer ainsi un module réutilisable, activable à tout moment dans n’importe quel classeur.
Capture d’écran montrant le classeur enregistré en tant que complément Excel

6. Une fois l’enregistrement effectué, revenez à Excel et fermez le classeur que vous venez de transformer en complément.

7. Ouvrez un classeur nouveau ou existant dans lequel vous souhaitez utiliser votre macro, puis saisissez la formule personnalisée dans la cellule appropriée (par exemple, en B2) :

=NumberstoWords(A2)
Remarque : une erreur « #NOM? » peut apparaître à ce stade. Cela est normal, car le complément contenant la fonction de macro n’a pas encore été chargé de manière globale dans Excel. Suivez les étapes ci-dessous pour activer votre macro dans tous les classeurs.
Capture d’écran de l’erreur #NOM ? avant l’application de la macro VBA enregistrée

8. Rendez-vous dans l’onglet Développeur et cliquez sur le bouton Compléments Excel du groupe Compléments.
Capture d’écran montrant l’option Compléments sous l’onglet Développeur dans Excel

9. Dans la boîte de dialogue Compléments qui s’affiche, sélectionnez Parcourir.
Capture d’écran de la boîte de dialogue Compléments dans Excel

10. Localisez et sélectionnez le fichier de complément que vous avez enregistré précédemment, puis cliquez sur OK.
Capture d’écran montrant la sélection d’un fichier de complément personnalisé dans Excel

11. Votre complément personnalisé, tel que « Complément Conversion chiffres en mots », doit maintenant apparaître dans la liste des compléments. Assurez-vous qu’il est bien coché, puis cliquez sur OK pour l’activer.
Capture d’écran montrant le complément personnalisé dans la boîte de dialogue Compléments dans Excel

12. Saisissez à nouveau la fonction personnalisée dans la cellule cible (par exemple, en B2) et appuyez sur Entrée. La formule doit désormais renvoyer les mots anglais correspondant au nombre.

=NumberstoWords(A2)

13. Pour appliquer instantanément la formule de conversion à plusieurs nombres, faites glisser la poignée de recopie vers le bas afin de propager la fonction dans les cellules suivantes.

Capture d’écran montrant le résultat final de la conversion des nombres en mots

Conseils et remarques :

  • Enregistrer votre macro sous forme de complément vous permet d’utiliser les mêmes fonctions personnalisées, le même code et les mêmes automatisations dans tous vos classeurs — un gain de temps précieux et une cohérence renforcée.
  • Si Excel est fermé ou si le complément est désactivé par la suite, les fonctions issues de ce complément peuvent temporairement afficher « #NOM? » jusqu’à son rechargement. Pour éviter toute confusion, assurez-vous que le complément reste activé dans le gestionnaire de compléments chaque fois qu’il est nécessaire.
  • Certains utilisateurs ne voient pas l’onglet Développeur activé par défaut. Pour l’afficher, cliquez avec le bouton droit sur le ruban, sélectionnez « Personnaliser le ruban », puis cochez la case « Développeur ».
  • Il est recommandé de stocker les compléments dans un dossier permanent afin d’éviter toute référence manquante en cas de déplacement ou de renommage des fichiers.

Si vous préférez exécuter le code manuellement, cela est également possible et parfois utile lors du débogage ou pour une utilisation ponctuelle :

  1. Vous pouvez affecter une macro à la barre d’outils Accès rapide pour l’exécuter en un seul clic dans n’importe quel classeur visible. Pour ce faire, cliquez avec le bouton droit sur la barre d’outils Accès rapide, sélectionnez « Personnaliser la barre d’outils Accès rapide », puis ajoutez votre macro.
    Capture d’écran montrant comment ajouter la macro VBA à la barre d’outils Accès rapide
  2. Vous pouvez également appuyer sur Alt + F11 pour ouvrir l’éditeur VBA, sélectionner manuellement votre macro, puis appuyer sur F5 pour exécuter le code selon vos besoins.

Avantages : Cette solution vous permet de créer et de partager des macros riches et réutilisables qui fonctionnent tant que le complément reste activé.
Inconvénients : Les utilisateurs doivent penser à charger le complément, et s’ils partagent des classeurs, ils doivent également transmettre le fichier du complément ainsi que les détails des fonctions. Par ailleurs, les compléments ne sont pas compatibles avec Excel en ligne.


Méthode du classeur personnel de macros

Une autre méthode particulièrement pratique pour garantir que vos macros préférées ou les plus utilisées soient toujours prêtes à l’emploi dès le démarrage d’Excel — quel que soit le classeur ouvert — consiste à les enregistrer dans le classeur personnel de macros (PERSONAL.XLSB). Il s’agit d’un fichier Excel spécial et masqué, chargé automatiquement à chaque lancement d’Excel, ce qui rend toutes les macros qu’il contient immédiatement accessibles dans tous les classeurs ouverts.

Scénarios d’utilisation : Idéal pour les automatisations personnelles, les scripts de mise en forme courants ou les fonctions utilitaires que vous n’avez pas besoin de partager sous forme de compléments Excel officiels. Les macros stockées dans PERSONAL.XLSB sont accessibles depuis n’importe quel classeur ouvert sur votre ordinateur.

Avantages : Les macros sont accessibles de manière globale depuis votre profil Excel local, sans nécessiter l’installation de compléments ni de fichiers supplémentaires.
Inconvénients : Les macros stockées ainsi ne fonctionnent que sur l’ordinateur et le compte où se trouve le fichier PERSONAL.XLSB. Leur partage avec d’autres utilisateurs exige une exportation et une importation manuelles des modules.

  • Pour utiliser cette méthode, vous devez d’abord enregistrer ou créer une macro et vous assurer qu’elle est bien sauvegardée dans votre classeur personnel de macros.

Suivez ces étapes :

  1. Ouvrez Excel. Dans l’onglet Affichage, cliquez sur Macros, puis sur Enregistrer une macro.
  2. Dans la boîte de dialogue, sous « Stocker la macro dans », sélectionnez Classeur personnel de macros. Terminez l’enregistrement (vous pouvez l’arrêter immédiatement si ce n’est pas nécessaire).
  3. Appuyez sur Alt + F11 pour accéder à l’éditeur VBA, où vous verrez un projet nommé PERSONAL.XLSB. Insérez-y un nouveau module ou collez-y le code de votre macro souhaitée.
  4. Enregistrez vos modifications. Excel crée et gère automatiquement le classeur PERSONAL.XLSB dans son dossier de démarrage.
  5. Les macros stockées dans PERSONAL.XLSB peuvent ensuite être exécutées via la boîte de dialogue Macros (Alt + F8), affectées au Ruban ou à des boutons de la barre d’outils, ou encore appelées depuis VBA.

Dépannage et maintenance : Si les macros contenues dans PERSONAL.XLSB ne sont pas disponibles, vérifiez qu’Excel ne démarre pas en mode sans échec et que les paramètres de sécurité des macros ne sont pas définis sur « Désactiver toutes les macros ». Par ailleurs, le fichier PERSONAL.XLSB est masqué par défaut ; si vous le fermez accidentellement sans l’enregistrer ou si vous le supprimez, vous devrez peut-être enregistrer une nouvelle macro pour le régénérer.

Conseil :Sauvegardez régulièrement votre fichier PERSONAL.XLSB. Vous pouvez le trouver dans le dossier de votre profil système, généralement à l’emplacement suivant :
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB

Autres opérations (articles)

Un code VBA pour lister tous les compléments dans Excel
Dans Excel, vous pouvez ajouter des compléments pour mieux gérer vos données. Comme vous le savez, il est possible d’afficher la liste de ces compléments via la fenêtre Options — mais saviez-vous qu’il existe un moyen de les lister directement dans une feuille ? Ce tutoriel vous propose un code VBA simple et efficace pour lister tous vos compléments Excel en un clin d’œil.

Comment exécuter une macro VBA à l’ouverture ou à la fermeture d’un classeur ?
Dans cet article, découvrez comment exécuter du code VBA automatiquement à chaque ouverture ou fermeture de votre classeur.

Comment protéger ou verrouiller le code VBA dans Excel ?
Tout comme vous pouvez protéger vos classeurs et feuilles de calcul à l’aide d’un mot de passe, vous pouvez également sécuriser vos macros dans Excel en définissant un mot de passe.

Comment appliquer un délai après l’exécution d’une macro VBA dans Excel ?
Dans certains cas, vous devrez peut-être introduire un délai avant le déclenchement d’une macro VBA dans Excel. Par exemple, lorsqu’on clique pour exécuter une macro spécifique, celle-ci s’exécute après 10 secondes. Cet article vous présente une méthode simple pour y parvenir.

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile

  • Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels