Passer au contenu principal

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

Dans certains cas, vous devrez peut-être utiliser une macro VBA plusieurs fois à l'avenir. est-ce possible de enregistrer en quelque sorte le module VBA dans n'importe quel nouveau document il sera donc disponible dans tous les classeurs ? La réponse est oui. Dans ce didacticiel, nous vous présenterons un moyen simple d'atteindre votre objectif.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 1

Enregistrer et utiliser le code VBA dans tous les classeurs


Enregistrer et utiliser le code VBA dans tous les classeurs

Par exemple, vous souhaitez utiliser le code VBA pour convertir des nombres en mots anglais et enregistrer le module VBA dans tous les classeurs au cas où vous voudriez utiliser le code VBA à l'avenir. Veuillez procéder comme suit.

1. appuie sur le Alt + F11 clés dans Excel, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Module et collez la macro suivante dans la fenêtre du module.

Code VBA : convertir des nombres en mots

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " 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 xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_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 = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3. Cliquez sur l' Épargnez dans le coin supérieur gauche du ruban ou cliquez sur Ctrl + S ouvrir le Enregistrer sous fenêtre.doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 2

4. dans le Enregistrer sous fenêtre, saisissez le nom du classeur dans la Nom du fichier boîte. Et sélectionnez le Complément Excel (*.xlam) option dans la Enregistrer en tant que type de la liste déroulante.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 3

5. Puis cliquez sur le Épargnez bouton pour enregistrer le classeur avec le code VBA en tant que Complément Excel.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 4

6. Retour à la Excel, fermez le classeur vide qui a été enregistré en tant que complément Excel.

7. Ouvrez un nouveau classeur avec les données à convertir. Saisissez la formule = NumberstoWords (A2) dans la cellule B2. La # NOM? La valeur d'erreur sera renvoyée car le code VBA n'a pas encore été appliqué dans tous les classeurs.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 5

8. Aller à l' Développeur onglet, cliquez sur Compléments Excel dans l' Add-ins groupe.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 6

9. le Ajouter à la boîte de dialogue apparaît. Clique le Explorer .
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 7

10. Choisissez le complément que vous venez d'enregistrer, puis cliquez sur le OK .
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 8

11. Puis le Convertir un nombre en mots que vous avez personnalisé est inséré et activé. Clique le OK pour terminer le réglage.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 9

12. Maintenant, lorsque vous saisissez la formule = NumberstoWords (A2) dans la cellule B2 et appuyez sur la Entrer touche, les mots anglais correspondants seront renvoyés. Faites glisser la poignée de remplissage automatique vers le bas pour obtenir tous les résultats.
doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 10

Notes:

Si vous devez exécuter le code manuellement, il n'y a aucun moyen de le trouver à partir des étapes ci-dessus. S'il vous plaît ne vous inquiétez pas. Il y a deux façons pour exécuter le code.

  1. Vous pouvez ajouter du code au Barre d'outils rapide et exécutez le code chaque fois que vous cliquez sur le bouton de code dans la barre d'outils.
    doc enregistrer-utiliser-vba-macros-dans-tous les classeurs 11
  2. Vous pouvez également appuyer directement sur Alt + F11 pour ouvrir la boîte de fonctionnement du code, recherchez le code et appuyez sur F5 courir.

Autres opérations (articles)

Un code VBA pour lister tous les compléments dans Excel
Dans Excel, vous pouvez ajouter ou insérer des compléments pour mieux gérer les données. Comme nous le savons, nous pouvons accéder à la fenêtre Options pour afficher tous les compléments, mais existe-t-il un moyen de répertorier tous les compléments dans une feuille? Maintenant, dans ce didacticiel, il fournit un code VBA pour répertorier 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 ?
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 le délai après l'exécution d'une macro VBA dans Excel ?
Dans certains cas, vous devrez peut-être effectuer un délai de minuterie pour déclencher une macro VBA dans Excel. Par exemple, lorsque vous cliquez pour exécuter une macro spécifiée, elle prendra effet après 10 secondes. Cet article vous montrera une méthode pour y parvenir.

 


  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée
  • Fusionner les cellules / lignes / colonnes et conservation des données; Contenu des cellules divisées; Combiner les lignes en double et la somme / moyenne... Empêcher les cellules en double; Comparer les gammes
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Formules favorites et insérer rapidement, Plages, graphiques et images; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF
  • Regroupement du tableau croisé dynamique par numéro de semaine, jour de la semaine et plus encore ... Afficher les cellules déverrouillées et verrouillées par différentes couleurs; Mettre en évidence les cellules qui ont une formule / un nom
onglet kte 201905
  • Activer 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 réduit des centaines de clics de souris chaque jour!
bas de cabine

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much hundred timessss
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations