Accéder au contenu principal

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

Author: Zhoumandy Last Modified: 2025-07-21

Il existe de nombreuses situations où vous pourriez avoir besoin d'utiliser la même macro VBA de manière répétée dans différents classeurs Excel, par exemple pour automatiser des calculs répétitifs, formater des données ou créer des fonctions personnalisées comme la conversion de nombres en mots. Un défi courant 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 ou les réutiliser facilement dans de nouveaux documents. Cependant, Excel propose plusieurs méthodes flexibles pour rendre une macro VBA disponible globalement, éliminant ainsi le besoin de recopier le code à chaque 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

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


Enregistrer et utiliser le code VBA dans tous les classeurs

Par exemple, supposons que vous souhaitiez pouvoir convertir des nombres en mots équivalents en anglais à l'aide d'un code VBA personnalisé et vous assurer que cette fonctionnalité est toujours disponible, peu importe le classeur sur lequel vous travaillez. Avec la bonne approche, vous pouvez enregistrer vos modules VBA de sorte qu'ils soient réutilisables à tout moment dans Excel. Cela est particulièrement utile pour les fonctions personnalisées ou les 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 module complémentaire Excel personnalisé. Ce module peut être activé dans Excel et exposera votre fonctionnalité personnalisée en tant que 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 Insertion > 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 de 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 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é, retournez dans Excel et fermez le classeur que vous venez de convertir en complément.

7. Ouvrez un nouveau ou un classeur 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. C'est normal puisque le complément contenant la fonction 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 du 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é, comme "Convertir des nombres en mots", 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 renvoyer 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 remplissage 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 rechargé. 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 recommandé 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 ce faire, 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 selon vos besoins.

Avantages : Cette solution vous permet de créer et partager des fonctionnalités macro 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 de la fonction. 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 très pratique pour vous assurer que vos macros préférées ou les plus utilisées sont prêtes dans chaque session Excel, peu importe 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 formatage de routine ou les fonctions utilitaires que vous n'avez pas besoin de partager en tant que 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 ni 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. Ici, 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 & 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 définis sur “Désactiver toutes les macros.” De plus, PERSONAL.XLSB est masqué par défaut ; si vous fermez accidentellement sans enregistrer ou supprimez-le, 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 traiter 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 fournit 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 lors de l'ouverture ou de la fermeture du classeur à chaque fois.

Comment protéger / verrouiller le code VBA dans Excel ?
De la même manière que 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 l'exécution d'une macro VBA dans Excel ?
Dans certains cas, vous pourriez avoir besoin de mettre en place un minuteur pour déclencher une macro VBA dans Excel. Par exemple, lorsque vous cliquez pour exécuter une macro spécifique, elle prend effet après 10 secondes. Cet article vous montrera une méthode pour y parvenir.

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionner l'analyse des données basée sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les Fonctions améliorées
Fonctionnalités populaires : Trouver, mise en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Consolider les colonnes ou les cellules sans perdre de données   |   Arrondir sans formule ...
Super RECHERCHEV : RECHERCHEV avec critères multiples    RECHERCHEV avec valeurs multiples  |   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 multi-sélection ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités en vedette : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Crypter/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 ensembles d'outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   50+ types de graphiques (Diagramme de Gantt, ...)   |   40+ formules pratiques (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils d'insertion (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 plus

Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la 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 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, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !