Accéder au contenu principal

Convertir des nombres en mots dans Excel – Un guide complet

Author: Xiaoyang Last Modified: 2025-08-06

La conversion de nombres en mots écrits est souvent nécessaire pour les rapports financiers, les documents juridiques, les factures ou les chèques. Bien qu'Excel n'offre pas cette fonctionnalité nativement, il existe plusieurs méthodes fiables pour y parvenir, allant des fonctions intégrées de Microsoft 365 aux fonctions définies par l'utilisateur en VBA et aux puissants modules complémentaires tiers. Ce guide complet vous accompagne à travers chaque méthode, mettant en avant leurs avantages et limitations, et vous aide à choisir la meilleure approche selon vos besoins spécifiques.

A screenshot showing converting numbers to words in Excel

Méthodes pour convertir des nombres en mots dans Excel

Cette section présente trois méthodes efficaces pour convertir des nombres de devises en mots dans Excel. Choisissez celle qui convient le mieux à votre version d'Excel et à votre cas d'utilisation.


Méthode 1 : Utiliser les nouvelles fonctions intégrées (Microsoft 365 uniquement)

Si vous utilisez Excel pour Microsoft 365, vous pouvez tirer parti de la nouvelle fonction TRANSLATE pour convertir facilement des nombres de devises en mots en utilisant une combinaison créative de formules.

Comme illustré dans la capture d'écran ci-dessous, pour convertir les nombres de devises dans la plage A2:A5 en mots, vous pouvez appliquer la formule suivante pour effectuer cette tâche.

  1. Sélectionnez une cellule vide (par exemple B2), puis entrez la formule ci-dessous.
    =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
  2. Appuyez sur "Entrée" et faites glisser la poignée de remplissage vers le bas pour l'appliquer aux autres lignes.
    A screenshot showing how to use the new function to convert numbers to words

Fonctionnement de la formule :

  • BAHTTEXT : Convertit le nombre en texte Thai-baht (par exemple, “หนึ่งบาทถ้วน”).
  • TRANSLATE(...,"th","en") : Traduit un texte d'une langue à une autre (nécessite Microsoft 365). Dans ce cas, il traduit du thaïlandais en anglais.
  • LOWER() : Convertit toute la chaîne en minuscules pour assurer la cohérence.
  • SUBSTITUTE() : Remplace les mots de devise comme "baht" et "satang" par vos termes souhaités.
  • PROPER() : Met en majuscule la première lettre de chaque mot pour un formatage correct.

Adaptation pour d'autres devises :

La formule ci-dessus produit des dollars américains. Vous pouvez la personnaliser pour d'autres devises en remplaçant les unités principales et secondaires :

  • Remplacez "dollars" par l'unité principale de votre devise cible, comme "pounds" pour la livre sterling.
  • Remplacez "cents" par l'unité mineure, comme "pence" pour la livre sterling.

Le tableau suivant liste les devises compatibles et les formules correspondantes que vous pouvez utiliser :

DeviseRemplacement de l'unité principaleRemplacement de l'unité mineureExemple de formule (en supposant que la valeur soit dans la cellule A2)
USD dollars cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dollars"),"satang","cents"))
GBP pounds pence =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","pounds"),"satang","pence"))
EUR euros cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","cents"))
MYR ringgit sen =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen"))

Limitations de cette méthode :

  • Ne fonctionne que dans Excel pour Microsoft 365 (en raison de la fonction TRANSLATE()).
  • Le résultat dépend fortement de la précision du formatage de BAHTTEXT().
  • Cette méthode convient aux devises qui, comme le baht thaïlandais, ont à la fois une unité principale et une sous-unité (par exemple, dollars et cents). Elle n'est pas recommandée pour les devises qui ne suivent pas une structure similaire.

Méthode 2 : Utiliser une fonction définie par l'utilisateur en VBA

Dans cette section, vous apprendrez à utiliser une fonction définie par l'utilisateur (UDF) en VBA pour convertir des valeurs numériques en mots de devise anglaise – adaptée par défaut aux dollars américains (USD).

Étape 1 : Insérer le code VBA

  1. Ouvrez la feuille de calcul où vous souhaitez utiliser cette fonctionnalité.
  2. Appuyez sur "Alt" + "F11" pour ouvrir la fenêtre "Microsoft Visual Basic for Applications".
  3. Dans l'éditeur, cliquez sur "Insertion" > "Module", puis collez le code VBA suivant.
    Function SpellNumberToEnglish(ByVal pNumber)
    'Update by Extendoffice
    Dim Dollars, Cents
    arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    pNumber = Trim(Str(pNumber))
    xDecimal = InStr(pNumber, ".")
    If xDecimal > 0 Then
        Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
        pNumber = Trim(Left(pNumber, xDecimal - 1))
    End If
    xIndex = 1
    Do While pNumber <> ""
        xHundred = ""
        xValue = Right(pNumber, 3)
        If Val(xValue) <> 0 Then
            xValue = Right("000" & xValue, 3)
            If Mid(xValue, 1, 1) <> "0" Then
                xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
            End If
            If Mid(xValue, 2, 1) <> "0" Then
                xHundred = xHundred & GetTens(Mid(xValue, 2))
            Else
                xHundred = xHundred & GetDigit(Mid(xValue, 3))
            End If
        End If
        If xHundred <> "" Then
            Dollars = xHundred & arr(xIndex) & Dollars
        End If
        If Len(pNumber) > 3 Then
            pNumber = Left(pNumber, Len(pNumber) - 3)
        Else
            pNumber = ""
        End If
        xIndex = xIndex + 1
    Loop
    Select Case Dollars
        Case ""
            Dollars = "No Dollars"
        Case "One"
            Dollars = "One Dollar"
        Case Else
            Dollars = Dollars & " Dollars"
    End Select
    Select Case Cents
        Case ""
            Cents = " and No Cents"
        Case "One"
            Cents = " and One Cent"
        Case Else
            Cents = " and " & Cents & " Cents"
    End Select
    SpellNumberToEnglish = Dollars & Cents
    End Function
    Function GetTens(pTens)
    Dim Result As String
    Result = ""
    If Val(Left(pTens, 1)) = 1 Then
        Select Case Val(pTens)
            Case 10: Result = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
            Case Else
        End Select
    Else
    Select Case Val(Left(pTens, 1))
        Case 2: Result = "Twenty "
        Case 3: Result = "Thirty "
        Case 4: Result = "Forty "
        Case 5: Result = "Fifty "
        Case 6: Result = "Sixty "
        Case 7: Result = "Seventy "
        Case 8: Result = "Eighty "
        Case 9: Result = "Ninety "
        Case Else
    End Select
    Result = Result & GetDigit(Right(pTens, 1))
    End If
    GetTens = Result
    End Function
    Function GetDigit(pDigit)
    Select Case Val(pDigit)
        Case 1: GetDigit = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
    End Function
    A screenshot showing the code editor
  4. Appuyez sur "Alt" + "Q" pour revenir à la feuille de calcul.

Étape 2 : Appliquer la fonction

  1. Dans une cellule, entrez la formule ci-dessous et appuyez sur "Entrée".
    =SpellNumberToEnglish(A2)
  2. Ensuite, faites glisser la poignée de remplissage pour l'appliquer aux autres lignes si nécessaire. Vos nombres seront désormais écrits en mots tels que :
    A screenshot showing the user-defined function and the results

Adaptation pour d'autres devises :

La fonction génère des valeurs en "Dollar(s)" et "Cent(s)", codées en dur uniquement pour les USD. Si vous souhaitez convertir des nombres dans d'autres devises, par exemple, "Livre sterling", vous devez modifier manuellement les unités principales et mineures dans les lignes de code suivantes.

A screenshot showing how to change the codes to adapt for other currencies

Enregistrez le classeur en tant que fichier avec macros

Par défaut, les fonctions VBA ne seront pas conservées à moins que le classeur ne soit enregistré en tant que classeur avec macros :

  1. Appuyez sur "Ctrl" + "S" pour enregistrer.
  2. Et sélectionnez le bouton "Retour" dans le message contextuel concernant les macros.
    Remarque : Si la fenêtre contextuelle affiche uniquement "Oui", "Non" et "Aide", cliquez sur "Non".
    A screenshot showing how to change the codes to adapt for other currencies
  3. Dans la fenêtre "Enregistrer sous".
    1. Choisissez un emplacement de sauvegarde.
    2. Sélectionnez "Classeur Excel avec macros activées (*.xlsm)" dans la liste déroulante "Type de fichier".
    3. Cliquez sur "Enregistrer".
      A screenshot showing how to change the codes to adapt for other currencies

Limitations de la fonction VBA SpellNumberToEnglish

Pas de support pour plusieurs langues
  • Cette fonction génère uniquement des résultats en anglais.
  • Elle ne prend pas en charge d'autres langues (par exemple, français, allemand), ni les structures monétaires où l'unité de devise précède le nombre (par exemple, "Rupees One Hundred" en anglais indien).
Non enregistrée dans les fichiers Excel standard
  • Si vous n'enregistrez pas le classeur en tant que classeur avec macros (.xlsm), la fonction sera perdue lorsque vous fermerez Excel.
  • Si enregistré en tant que fichier .xlsx normal, tout le code VBA sera supprimé.
Avertissement de sécurité macro lors du partage
  • Envoyer le fichier avec macros activées à d'autres utilisateurs déclenchera une alerte "Avertissement de sécurité - Les macros ont été désactivées" lorsqu'il sera ouvert.
  • Certains utilisateurs peuvent hésiter à activer les macros, craignant des risques de sécurité potentiels, et peuvent choisir de ne pas utiliser le fichier.
Requiert des connaissances en VBA pour la personnalisation
  • Toute modification des termes de devise ou du formatage nécessite d'éditer manuellement le code VBA.
  • Non idéal pour les utilisateurs peu familiers avec les macros ou les scripts.

Méthode 3 : Utiliser Kutools pour Excel (aucune formule ou VBA requise)

Si vous installez "Kutools pour Excel", utilisez sa fonction "Nombres en mots" pour convertir des nombres en anglais (devise ou simple), ainsi qu'en dizaines d'autres langues et devises comme EUR, GBP, JPY, etc.

Si vous recherchez une solution sans code, conviviale et polyvalente pour convertir des nombres en mots dans Excel, Kutools pour Excel propose une fonction dédiée "Nombres en mots" qui prend en charge :

  • Anglais (USD, GBP, EUR, etc.)
  • Des dizaines d'autres langues et devises (par exemple, yen japonais, roupie indienne, yuan chinois)
  • Format de devise ou mots simples (par exemple, "One Hundred Twenty-Three" au lieu de "One Hundred Twenty-Three Dollars")

Étapes à suivre :

  1. Sélectionnez les cellules contenant les nombres que vous souhaitez convertir.
  2. Sélectionnez "Kutools" > "Texte" > "Nombres en mots".
  3. Dans la boîte de dialogue "Nombres en mots de devise", vous devez :
    1. Choisir la langue et le style de devise que vous préférez (par exemple, anglais – États-Unis pour USD)
    2. Cliquez sur "OK".
      A screenshot showing the numbers to currency word dialog box

Facultatif : Cochez "Ne pas convertir en devise" si vous souhaitez des mots simples en anglais (sans "dollars" ou "cents").

Les nombres sélectionnés seront désormais convertis en mots de devise appropriés, selon vos paramètres.

Kutools pour Excel - Boostez Excel avec plus de 300 outils essentiels. Profitez de fonctionnalités IA gratuites en permanence ! Obtenez-le maintenant


Opération inverse : Convertir des mots de devise en nombres

Si vous avez une liste de montants de devise écrits en mots anglais, comme :

"One hundred twenty-three dollars and forty-five cents"

et que vous souhaitez les convertir en nombres réels dans Excel (par exemple, 123,45), vous pouvez utiliser une fonction utilisateur personnalisée en VBA (UDF) comme suit.

Étape 1 : Ouvrir l'éditeur VBA et insérer le code VBA

  1. Ouvrez votre classeur Excel.
  2. Appuyez sur "Alt" + "F11" pour ouvrir l'éditeur "Microsoft Visual Basic for Applications (VBA)".
  3. Dans l'éditeur VBA, cliquez sur "Insertion" > "Module".
  4. Copiez et collez le code VBA suivant dans la fenêtre de module vide :
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

Étape 2 : Appliquer la fonction dans votre feuille

  1. Appuyez sur "Alt" + "Q" pour revenir à Excel.
  2. Dans n'importe quelle cellule vide, entrez cette formule et appuyez sur "Entrée". Faites glisser la poignée de remplissage vers le bas pour obtenir le reste des résultats.
    =WordsToNumber(A2)
    A screenshot showing how to convert words to numbers

Conclusion

Convertir des nombres en mots – ou des mots en nombres – n'est pas une fonction offerte nativement par Excel, mais ce guide a montré qu'il existe plusieurs solutions pratiques selon vos besoins :

  • Les utilisateurs de Microsoft 365 peuvent tirer parti des fonctions modernes intégrées comme TRANSLATE pour convertir des nombres de devises en mots anglais via des formules, surtout pour les devises qui suivent une structure "principale + sous-unité".
  • Les fonctions définies par l'utilisateur en VBA offrent une plus grande flexibilité pour convertir des nombres en mots et inverser des mots de devise en valeurs numériques. Cependant, elles comportent des préoccupations liées à la sécurité des macros et sont mieux adaptées aux utilisateurs familiers avec le codage.
  • Kutools pour Excel offre l'option la plus facile, multilingue et riche en fonctionnalités – ne nécessitant aucune formule ou codage, couvrant des dizaines de devises et langues.
  • Si vous avez besoin d'inverser des mots en nombres, la solution VBA comble efficacement cette lacune, bien qu'elle puisse nécessiter un nettoyage (par exemple, suppression des virgules) pour des résultats précis.

Que vous prépariez des documents financiers, automatisiez l'impression de chèques ou amélioriez simplement la présentation des données, choisir la bonne méthode vous permet d'obtenir des résultats professionnels et précis.


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!