Transformer un nombre en lettres.

Safio Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Comment dans Word et Excel sous WinXP transformer un nombre en lettres.
Merci d'avance !
Cordialement
Safio

2 réponses

  1. arbalétrier
     
    Bonsoir,
    J'ai trouvé une fonction VB qui correspond, je crois, à votre demande. Je vous la communique tel quel. Il faut encore la traduire en français et l'adapter à votre cas.

    Static Function NumWord(ByVal AmountPassed As Currency) As String

    '** Convert a number to words for filling in the Amount of a check
    '** Example: NumWord(120.45) returns ONE HUNDRED TWENTY AND 45/100
    '** Can handle numbers from 0 to $999,999.99
    '** Created by Alan Simpson: Fax (619)756-0159
    '** First working version, not yet fully tuned for speed or brevity.

    '** The array below, and other variables, are dimensioned
    '** in the Declarations section.

    '** Fill EngNum array, if it's not filled already)
    If Not EngNum(1) = "One" Then
    EngNum(0) = ""
    EngNum(1) = "One"
    EngNum(2) = "Two"
    EngNum(3) = "Three"
    EngNum(4) = "Four"
    EngNum(5) = "Five"
    EngNum(6) = "Six"
    EngNum(7) = "Seven"
    EngNum(8) = "Eight"
    EngNum(9) = "Nine"
    EngNum(10) = "Ten"
    EngNum(11) = "Eleven"
    EngNum(12) = "Twelve"
    EngNum(13) = "Thirteen"
    EngNum(14) = "Fourteen"
    EngNum(15) = "Fifteen"
    EngNum(16) = "Sixteen"
    EngNum(17) = "Seventeen"
    EngNum(18) = "Eighteen"
    EngNum(19) = "Nineteen"
    EngNum(20) = "Twenty"
    EngNum(30) = "Thirty"
    EngNum(40) = "Forty"
    EngNum(50) = "Fifty"
    EngNum(60) = "Sixty"
    EngNum(70) = "Seventy"
    EngNum(80) = "Eighty"
    EngNum(90) = "Ninety"
    End If

    '** Convert incoming Currency value to a string for parsing.
    StringNum = Format$(AmountPassed, "000000.00")

    '** Initialize other variables
    English = ""
    LoopCount = 1
    StartVal = 1
    Pennies = Mid$(StringNum, 8, 2)

    '** Just in case the check is for less than a buck...
    If AmountPassed < 1 Then
    English = "Zero"
    End If

    '** Now do each 3-digit section of number.
    While LoopCount <= 2
    Chunk = Mid$(StringNum, StartVal, 3)
    Hundreds = Val(Mid$(Chunk, 1, 1))
    Tens = Val(Mid$(Chunk, 2, 2))
    Ones = Val(Mid$(Chunk, 3, 1))

    '** Do the hundreds portion of 3-digit number
    If Val(Chunk) > 99 Then
    English = English & EngNum(Hundreds) & " Hundred "
    End If

    '** Do the tens & ones portion of 3-digit number
    TensDone = False

    '** Is it less than 10?
    If Tens < 10 Then
    English = English & " " & EngNum(Ones)
    TensDone = True
    End If

    '** Is it a teen?
    If (Tens >= 11 And Tens <= 19) Then
    English = English & EngNum(Tens)
    TensDone = True
    End If

    '** Is it Evenly Divisible by 10?
    If (Tens / 10#) = Int(Tens / 10#) Then
    English = English & EngNum(Tens)
    TensDone = True
    End If

    '** Or is it none of the above?
    If Not TensDone Then
    English = English & EngNum((Int(Tens / 10)) * 10)
    English = English & " " & EngNum(Ones)
    End If

    '** Add the word "thousand" if necessary.
    If AmountPassed > 999.99 And LoopCount = 1 Then
    English = English + " Thousand "
    End If

    '** Do pass through second three digits
    LoopCount = LoopCount + 1
    StartVal = 4
    Wend
    '** Done: Return english with pennies tacked on.
    NumWord = Trim(English) & " and " & Pennies & "/100"

    End Function
    0
    1. Safio Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonsoir,
      Merci arbaléier.
      C'est ce que je cherchais.
      Il me reste maintenant ... à traduire en français ...
      Cordialement.
      Safio
      0
  2. Eric
     
    Salut !

    Extrait de l'aide online d'Excel

    Appliquer le format Texte à des nombres
    Appliquer le format Texte à des cellules
    Sélectionnez les cellules à mettre en forme.
    Dans le menu Format, cliquez sur Cellule, puis sur l'onglet Nombre.
    Dans la liste Catégorie, cliquez sur Texte, puis sur OK.
    Entrez les chiffres dans les cellules mises en forme.
    Appliquer le format Texte à des nombres existants
    Si vous avez déjà saisi les nombres, vous pouvez les convertir au format Texte.

    Sélectionnez les cellules qui contiennent les nombres auxquels vous voulez appliquer le format Texte.
    Dans le menu Format, cliquez sur Cellule, puis sur l'onglet Nombre.
    Dans la liste Catégorie, cliquez sur Texte, puis sur OK.

    Voilou

    A++
    -1
    1. Safio Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci Eric.
      Je m'excuse, je me suis mal exprimé, j'ai voulu dire transformer un nombre en toutes lettres ( ex. 243 = deux cent qurante trois).
      C'est de ma faute.
      a+
      0