Convertir des nombres en mots

Remarque : Nous faisons de notre mieux pour vous fournir le contenu d’aide le plus récent aussi rapidement que possible dans votre langue. Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez-vous nous indiquer en bas de page si ces informations vous ont aidé ? Voici l’article en anglais à des fins de référence aisée.

Excel n’offre pas une fonction par défaut qui affiche les nombres comme des mots en anglais dans une feuille de calcul, mais vous pouvez ajouter cette fonctionnalité en collant le code de fonction SpellNumber suivant dans un module VBA (Visual Basic pour Applications). Cette fonction vous permet de convertir des montants en euros et cent mots avec une formule afin de 22,50 lit comme vingt-deux euros et cinquante centimes. Cela peut être très utile si vous utilisez Excel en tant que modèle pour imprimer des chèques.

Si vous souhaitez convertir des valeurs numériques au format texte sans les afficher en tant que mots, utilisez la fonction texte à la place.

Remarque : Microsoft fournit des exemples de programmation d’illustration uniquement, sans garantie ou implicite. Cela inclut, mais n’est pas limité à, les garanties implicites de qualité ou d’adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation VBA et avec les outils qui sont utilisées pour créer et déboguer des procédures. Ingénieurs du support technique Microsoft peuvent vous expliquer les fonctionnalités d’une procédure particulière. Toutefois, ils ne peuvent pas modifier ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Création de la fonction SpellNumber pour convertir des nombres mots

  1. Utilisez le raccourci clavier, Alt + F11 pour ouvrir Visual Basic Editor (VBE).

    Remarque : Vous pouvez également accéder à l’éditeur Visual Basic en affichant l’onglet Développeur dans le ruban.

  2. Cliquez sur l’onglet Insérer, puis cliquez sur Module.

    Dans le menu Insertion, cliquez sur Module.
  3. Copiez les lignes de code suivantes.

    Remarque : Appelé une Fonction définie par l’utilisateur (UDF), ce code permet d’automatiser la tâche de conversion des numéros au texte dans l’ensemble de votre feuille de calcul.

    Option Explicit
    
    'Main Function
    
    Function SpellNumber(ByVal MyNumber)
    
    Dim Dollars, Cents, Temp
    
    Dim DecimalPlace, Count
    
    ReDim Place(9) As String
    
    Place(2) = " Thousand "
    
    Place(3) = " Million "
    
    Place(4) = " Billion "
    
    Place(5) = " Trillion "
    
    ' String representation of amount.
    
    MyNumber = Trim(Str(MyNumber))
    
    ' Position of decimal place 0 if none.
    
    DecimalPlace = InStr(MyNumber, ".")
    
    ' Convert cents and set MyNumber to dollar amount.
    
    If DecimalPlace > 0 Then
    
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
    
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    
    End If
    
    Count = 1
    
    Do While MyNumber <> ""
    
    Temp = GetHundreds(Right(MyNumber, 3))
    
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    
    If Len(MyNumber) > 3 Then
    
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    
    Else
    
    MyNumber = ""
    
    End If
    
    Count = Count + 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
    
    SpellNumber = Dollars & Cents
    
    End Function
    
    
    ' Converts a number from 100-999 into text
    
    Function GetHundreds(ByVal MyNumber)
    
    Dim Result As String
    
    If Val(MyNumber) = 0 Then Exit Function
    
    MyNumber = Right("000" & MyNumber, 3)
    
    ' Convert the hundreds place.
    
    If Mid(MyNumber, 1, 1) <> "0" Then
    
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    
    End If
    
    ' Convert the tens and ones place.
    
    If Mid(MyNumber, 2, 1) <> "0" Then
    
    Result = Result & GetTens(Mid(MyNumber, 2))
    
    Else
    
    Result = Result & GetDigit(Mid(MyNumber, 3))
    
    End If
    
    GetHundreds = Result
    
    End Function
    
    
    ' Converts a number from 10 to 99 into text.
    
    
    Function GetTens(TensText)
    
    Dim Result As String
    
    Result = "" ' Null out the temporary function value.
    
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    
    Select Case Val(TensText)
    
    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 ' If value between 20-99...
    
    Select Case Val(Left(TensText, 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(TensText, 1)) ' Retrieve ones place.
    
    End If
    
    GetTens = Result
    
    End Function
    
    
    ' Converts a number from 1 to 9 into text.
    
    Function GetDigit(Digit)
    
    Select Case Val(Digit)
    
    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
  4. Collez les lignes de code dans la Module1 (Code) zone.

    Code collé dans le Module1 zone (Code).
  5. Appuyez sur Alt + Q pour revenir à Excel. La fonction SpellNumber est maintenant prête à utiliser.

    Remarque : Cette fonction fonctionne uniquement pour le classeur actif. Pour utiliser cette fonction dans un autre classeur, vous devez répéter les étapes pour copier et coller le code dans ce classeur.

Haut de la page

Utiliser la fonction SpellNumber dans des cellules individuelles

  1. Tapez la formule = SpellNumber (A1) dans la cellule où vous souhaitez afficher un nombre écrit, où A1 est la cellule qui contient le nombre à convertir. Vous pouvez taper manuellement la valeur comme = SpellNumber(22.50).

  2. Appuyez sur entrée pour confirmer la formule.

Haut de la page

Enregistrez votre classeur de fonction SpellNumber

Excel ne peut pas enregistrer un classeur avec des fonctions de macro dans le format de classeur sans macro standard (.xlsx). Si vous cliquez sur fichier > Enregistrer. Une boîte de dialogue projet Visual Basic s’ouvre. Cliquez sur non.

Dans la boîte de dialogue de projet Visual Basic, cliquez sur non.

Vous pouvez enregistrer votre fichier en tant que Classeur Excel (.xlsm) pour conserver votre fichier dans son format actuel.

  1. Cliquez sur Fichier > Enregistrer sous.

  2. Cliquez sur le menu déroulant Enregistrer en tant que type, puis sélectionnez Classeur Excel.

  3. Cliquez sur Enregistrer.

Haut de la page

Voir aussi

TEXTE

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×