Excel ne possède pas de fonction par défaut qui affiche les nombres en tant que mots anglais dans une feuille de calcul, mais vous pouvez ajouter cette fonctionnalité en collant le code de la fonction SpellNumber suivant dans un module VBA (Visual Basic pour applications). Cette fonction vous permet de convertir des montants en euros et en cents en mots avec une formule, de sorte que 22,50 produisait le Twenty-Two dollars et 50 cents. Cela peut s’avérer très utile si vous utilisez Excel comme modèle pour imprimer des chèques.

Pour convertir des valeurs numériques en format texte sans les afficher sous forme de mots, utilisez la fonction texte à la place.

Remarque : Microsoft fournit des exemples de programmation uniquement à des fins d’illustration, sans garantie, expresse ou implicite. Cela comprend, sans s’y limiter, les garanties implicites en matière de qualité marchande ou d’adéquation à un but particulier. Cet article part du principe que vous êtes familiarisé avec le langage de programmation VBA, ainsi que les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support Microsoft peuvent vous permettre d’expliquer les fonctionnalités d’une procédure particulière. Toutefois, ils ne modifieront pas ces exemples pour fournir des fonctionnalités ajoutées ou créer des procédures pour répondre à vos besoins spécifiques.

Créer la fonction SpellNumber pour convertir des nombres en mots

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

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

  2. Cliquez sur l’onglet insertion , puis sur module.

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

    Remarque : Appelé fonction définie par l’utilisateur (UDF), ce code permet d’automatiser la conversion des nombres en 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 zone Module1 (code) .

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

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

Haut de la page

Utiliser la fonction SpellNumber dans les cellules individuelles

  1. Tapez la formule = SpellNumber(a1) dans la cellule dans laquelle vous voulez afficher un nombre écrit, a1 correspond à la cellule contenant le nombre à convertir. Vous pouvez également taper manuellement la valeur (par exemple, = SpellNumber (22.50)).

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

Haut de la page

Enregistrer 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 VB Project s’ouvre. cliquer 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 Macro-Enabled (. xlsm) pour conserver votre fichier dans son format actuel.

  1. Cliquez sur Fichier > Enregistrer sous.

  2. Cliquez sur le menu déroulant type de fichier , puis sélectionnez Excel Macro-Enabled classeur.

  3. Cliquez sur Enregistrer.

Haut de la page

TEXTE, fonction

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×