Ecrire un nombre en toute lettre

Bonjour,

Pouvez-vous m'aider avec la macro pour écrire des nombres en lettres (en Français et en Angais).

Merci d'avance

Bonjour,

Comme tu dois facilement l'imaginer ... ta requête est un très grand standard ...!!!

Donc sur le net ... tu trouveras des centaines de solutions déjà ' prêtes à l'emploi ' ...

Dim Number2s(2 To 9) As String
Dim Number1s(1 To 19) As String
Dim Steps(1 To 4) As String

Public Function NumToWord(Numstring As Variant) As String
If Steps(1) = "" Then initstrings
Dim Tempstring As String
Dim Newstring As String
Dim What As Double

If Numstring = 0 Then
  NumToWord = "zero"
  Exit Function
End If

If Numstring > (10 ^ 24) Then _
  NumToWord = "Number is too big"
  Exit Function
End If

Counter = 0
Do
  Counter = Counter + 1
  If Counter > 1 Then 
    What = 10 ^ (12 \ ((Counter - 1) * 2)) 
  Else 
    What = 10 ^ 12
  End If

  If Numstring >= What Then
  Newstring = NumToWord(Fix(Numstring / What))
  Numstring = ((Numstring / What) - Fix(Numstring / What)) * What
  If Numstring = 0 Then
    Tempstring = Tempstring & Newstring & Steps(Counter) & " "
  Else
    If Counter = 4 Then 
    Tempstring = Tempstring & Newstring & _
    Steps(Counter) & " and ": GoToSkipit
    Tempstring = Tempstring & Newstring & _
    Steps(Counter) & ", "
    Skipit:
  End If
End If

Loop Until Counter = 4

If Numstring >= 20 Then _
Tempstring = Tempstring & _
Number2s(Fix(Numstring / 10)) & " "

If Numstring >= 10 And Numstring < 20 Then _
Tempstring = Tempstring & Number1s(CInt(Numstring)) _
& " ": GoTo Skip2

Numstring = ((Numstring / 10) - Fix(Numstring / 10)) * 10

If Numstring > 0 Then Tempstring = Tempstring & _
Number1s(CInt(Numstring)) & " "
Skip2:

NumToWord = Tempstring

End Function

Public Sub initstrings()
Steps(1) = "billion"
Steps(2) = "million"
Steps(3) = "thousand"
Steps(4) = "hundred"
Number1s(1) = "one"
Number1s(2) = "two"
Number1s(3) = "three"
Number1s(4) = "four"
Number1s(5) = "five"
Number1s(6) = "six"
Number1s(7) = "seven"
Number1s(8) = "eight"
Number1s(9) = "nine"
Number1s(10) = "ten"
Number1s(11) = "eleven"
Number1s(12) = "twelve"
Number1s(13) = "thirteen"
Number1s(14) = "fourteen"
Number1s(15) = "fifteen"
Number1s(16) = "sixteen"
Number1s(17) = "seventeen"
Number1s(18) = "eighteen"
Number1s(19) = "nineteen"
Number2s(2) = "twenty"
Number2s(3) = "thirty"
Number2s(4) = "forty"
Number2s(5) = "fifty"
Number2s(6) = "sixty"
Number2s(7) = "seventy"
Number2s(8) = "eighty"
Number2s(9) = "ninety"
End Sub

En espèrant que cela t'aide

Rechercher des sujets similaires à "ecrire nombre toute lettre"