Ecrire un nombre en toute lettre
L
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 SubEn espèrant que cela t'aide