Accéder au contenu principal

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

Author: Zhoumandy Last Modified: 2025-08-06

Il existe de nombreuses situations où vous pourriez avoir besoin d'utiliser la même macro VBA à plusieurs reprises dans différents classeurs Excel pour des tâches telles que l'automatisation de calculs répétitifs, la mise en forme des données ou des fonctions personnalisées comme la conversion de nombres en mots. Un défi commun est que, par défaut, les macros sont stockées uniquement dans le classeur où elles ont été créées, ce qui signifie que vous ne pouvez pas y accéder facilement ou les réutiliser dans de nouveaux documents. Cependant, Excel offre plusieurs méthodes flexibles pour rendre une macro VBA disponible globalement, éliminant ainsi le besoin de recopier du code chaque fois que vous commencez un nouveau classeur. Ce tutoriel fournit des instructions complètes pour diverses approches afin de garantir que vos macros VBA soient facilement accessibles dans tous les classeurs, améliorant ainsi votre productivité et votre flux de travail.

A screenshot showing the Add-ins dialog in Excel

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


Enregistrez et utilisez le code VBA dans tous les classeurs

Par exemple, supposons que vous souhaitiez pouvoir convertir des nombres en mots anglais équivalents en utilisant un code VBA personnalisé et vous assurer que cette fonctionnalité est toujours disponible, quel que soit le classeur sur lequel vous travaillez. Avec la bonne approche, vous pouvez enregistrer vos modules VBA de manière à ce qu'ils soient réutilisables chaque fois que vous en avez besoin dans Excel. C'est particulièrement utile pour des fonctions personnalisées ou des automatisations que vous souhaitez rendre accessibles à chaque fois, sans dupliquer le code dans plusieurs fichiers.

Pour ce faire, vous pouvez empaqueter votre code VBA sous forme de complément Excel personnalisé. Ce complément peut être activé dans Excel et exposera votre fonctionnalité personnalisée sous forme de fonction disponible globalement.

Suivez ces étapes :

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

2. Dans l'éditeur VBA, cliquez sur Insérer > Module et collez la macro suivante dans la nouvelle fenêtre Module créée.

Code VBA : Convertir des nombres 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. Maintenant, cliquez 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".
A screenshot showing the Save option in the VBA window

4. Dans la fenêtre "Enregistrer sous", entrez le nom de fichier souhaité dans le champ "Nom du fichier". Pour le menu déroulant "Type de fichier", assurez-vous de sélectionner Complément Excel (*.xlam).
A screenshot showing the Save As dialog box with the selection of Excel Add-in (*.xlam) as the save type

5. Cliquez sur le bouton "Enregistrer" pour stocker votre classeur en tant que fichier de complément Excel. Cela crée un complément réutilisable qui peut être activé à tout moment pour n'importe quel classeur.
A screenshot showing the workbook saved as an Excel Add-in

6. Une fois enregistré, revenez à Excel et fermez le classeur que vous venez de convertir en complément.

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

=NumberstoWords(A2)
Remarque : Une erreur "#NOM?" peut apparaître à ce stade. Cela est normal puisque le complément contenant la fonction de la macro n'a pas encore été chargé globalement dans Excel. Suivez les étapes ci-dessous pour activer votre macro dans tous les classeurs.
A screenshot of the #NAME? error before applying the saved VBA macro

8. Allez dans l'onglet Développeur et cliquez sur le bouton Compléments Excel dans le groupe Compléments.
A screenshot showing the Add-ins option under the Developer tab in Excel

9. Dans la boîte de dialogue Compléments qui apparaît, sélectionnez Parcourir.
A screenshot of the Add-ins dialog box in Excel

10. Localisez et sélectionnez le fichier de complément que vous avez enregistré précédemment, puis cliquez sur OK.
A screenshot showing the selection of a custom Add-in file in Excel

11. Votre complément personnalisé, tel que "Convert Number To Words Add-in", devrait maintenant apparaître dans la liste des compléments. Assurez-vous qu'il est coché et cliquez sur OK pour l'activer.
A screenshot showing the custom add-in the Add-ins dialog box in Excel

12. Maintenant, entrez à nouveau la fonction personnalisée dans la cellule cible (comme B2) et appuyez sur Entrée. Vous devriez voir la formule retourner les mots anglais corrects correspondant au nombre.

=NumberstoWords(A2)

13. Pour appliquer rapidement la formule de conversion à plusieurs nombres, faites glisser la poignée de recopie automatique de la cellule vers le bas pour copier la fonction dans d'autres cellules.

A screenshot showing the final result of the converted numbers to words

Conseils & Notes :

  • Enregistrer votre macro en tant que complément vous permet d'utiliser les mêmes fonctions personnalisées, codes ou automatisations dans tous vos classeurs, économisant du temps et améliorant la cohérence.
  • Si Excel est fermé ou si le complément est désactivé plus tard, les fonctions du complément peuvent temporairement afficher "#NOM?" jusqu'à ce que le complément soit à nouveau chargé. Pour éviter toute confusion, assurez-vous que le complément est toujours activé dans le gestionnaire de compléments lorsque cela est nécessaire.
  • Certains utilisateurs peuvent ne pas voir l'onglet Développeur par défaut. Pour l'activer, faites un clic droit sur le ruban, choisissez "Personnaliser le ruban" et cochez l'option "Développeur".
  • Il est bon de stocker les compléments dans un dossier permanent pour éviter les références manquantes si des fichiers sont déplacés ou renommés.

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 ad hoc :

  1. Vous pouvez attribuer une macro à la barre d'outils Accès rapide pour une exécution en un clic dans n'importe quel classeur visible. Pour cela, faites un clic droit sur la barre d'outils Accès rapide, sélectionnez "Personnaliser la barre d'outils Accès rapide", puis ajoutez votre macro.
    A screenshot showing how to add the VBA macro to the Quick Access Toolbar
  2. Vous pouvez également appuyer sur Alt + F11 pour ouvrir l'éditeur VBA, sélectionner manuellement votre macro et appuyer sur F5 pour exécuter le code au besoin.

Avantages : Cette solution vous permet de créer et partager des fonctionnalités de macros riches et réutilisables qui fonctionnent toujours tant que le complément est activé.
Inconvénients : Les utilisateurs doivent se souvenir de charger le complément et, s'ils partagent des classeurs, ils doivent également partager le fichier de complément et les détails des fonctions. De plus, les compléments ne peuvent pas être utilisés dans Excel Online.


Méthode du classeur de macros personnel

Une autre méthode hautement pratique pour vous assurer que vos macros préférées ou les plus utilisées sont prêtes dans chaque session Excel, quel que soit le classeur ouvert, consiste à utiliser le Classeur de macros personnel (PERSONAL.XLSB). Il s'agit d'un fichier Excel spécial et caché qui se charge automatiquement chaque fois qu'Excel démarre, permettant à toutes les macros stockées à l'intérieur d'être accessibles dans tous les classeurs ouverts.

Scénarios applicables : Idéal pour l'automatisation personnelle, les scripts de mise en forme routinière ou les fonctions utilitaires que vous n'avez pas besoin de partager sous forme de compléments Excel formels. Les macros dans PERSONAL.XLSB sont disponibles sur votre ordinateur, quel que soit le fichier ouvert.

Avantages : Les macros sont disponibles globalement pour votre profil Excel local et ne nécessitent aucune installation de compléments ou fichiers supplémentaires.
Inconvénients : Les macros stockées de cette manière ne sont utilisables que sur l'ordinateur et le compte où PERSONAL.XLSB existe. Le partage avec d'autres nécessite l'exportation et l'importation manuelle des modules.

  • Pour utiliser cette méthode, vous devez d'abord enregistrer ou créer une macro et vous assurer qu'elle est enregistrée dans le Classeur de macros personnel.

Suivez ces étapes :

  1. Ouvrez Excel. Sous l'onglet Affichage, cliquez sur Macros, puis Enregistrer une macro.
  2. Dans la boîte de dialogue, sous "Stocker la macro dans", sélectionnez Classeur de macros personnel. Terminez l'enregistrement (vous pouvez arrêter immédiatement si ce n'est pas nécessaire).
  3. Appuyez sur Alt + F11 pour entrer dans l'éditeur VBA où vous verrez un projet pour PERSONAL.XLSB. À cet endroit, insérez un nouveau module ou collez votre code de macro souhaité.
  4. Enregistrez vos modifications. Excel crée et maintient automatiquement le classeur PERSONAL.XLSB dans son dossier de démarrage.
  5. Les macros dans PERSONAL.XLSB peuvent ensuite être exécutées via la boîte de dialogue Macros (Alt + F8), attribuées aux boutons du ruban ou de la barre d'outils, ou appelées depuis VBA.

Dépannage et maintenance : Si les macros dans PERSONAL.XLSB ne sont pas disponibles, vérifiez si Excel s'ouvre en mode sans échec ou si les paramètres de sécurité des macros sont configurés sur "Désactiver toutes les macros." De plus, PERSONAL.XLSB est masqué par défaut ; si vous fermez accidentellement sans enregistrer ou si vous le supprimez, vous devrez peut-être réenregistrer une macro pour le régénérer.

Astuce : Sauvegardez régulièrement votre fichier PERSONAL.XLSB. Vous pouvez le trouver dans votre dossier de profil système, généralement :
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 ou insérer certains compléments pour mieux manipuler les données. Comme nous le savons, nous pouvons aller dans la fenêtre Options pour afficher tous les compléments, mais existe-t-il un moyen de lister tous les compléments dans une feuille ? Maintenant, dans ce tutoriel, il propose un code VBA pour lister tous les compléments dans Excel.

Comment exécuter une macro VBA lors de l'ouverture ou de la fermeture d'un classeur ?
Dans cet article, je vais vous expliquer comment exécuter le code VBA en ouvrant ou fermant le classeur à chaque fois.

Comment protéger / verrouiller le code VBA dans Excel ?
Tout comme vous pouvez utiliser un mot de passe pour protéger les classeurs et les feuilles de calcul, vous pouvez également définir un mot de passe pour protéger les macros dans Excel.

Comment utiliser un délai après avoir exécuté une macro VBA dans Excel ?
Dans certains cas, vous pourriez avoir besoin d'ajouter un minuteur de délai pour déclencher une macro VBA dans Excel. Par exemple, lorsque vous cliquez pour exécuter une macro spécifique, elle prendra effet après 10 secondes. Cet article vous montrera une méthode pour y parvenir.

Meilleurs outils de productivité Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données grâce à : Exécution intelligente   |  Générer du code  |  Créer des Formules personnalisées  |  Analyser des données et générer des graphiques  |  Appeler les Fonctions améliorées
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Combiner les colonnes ou cellules sans perdre de données   |  Arrondir...
Super RECHERCHEV : Recherche multi-critères    Recherche multi-valeurs  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante avec sélection multiple ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer des colonnes  |  Basculer l’état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités à la une : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & de feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Chiffrer/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 des ensembles d’outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   Plus de50 types de graphiques (Diagramme de Gantt, ...)   |   Plus de40 formules intelligentes (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils dinsertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et bien plus encore
Utilisez Kutools dans votre langue préférée: compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de40 autres langues !

Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...


Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail

  • Activez la modification 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, au lieu d’ouvrir de nouvelles fenêtres.
  • Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!