Chiffre en lettre fonction

Contenu du snippet

Une petite fonction simlpe pour transformer un chiffre en lettre.
Exemple:

"15193" >> dix mille cent quatre vingt treize

Je me suis arreté au milliard et j'ai pas mis les pluriels pour cent, mille etc...

Je poste cette fonction car cela a été demandé sur l'irc.

Source / Exemple :


Function ChiffreToLettre(Chiffre As String) As String
Do Until Chiffre = ""
Select Case Int((Len(Chiffre) - 1) / 3)
Case 0: ext$ = ""
Case 1: ext$ = "Mille "
Case 2: ext$ = "Million "
Case 3: ext$ = "Milliard "
End Select
k = Len(Chiffre) Mod 3
If k = 0 Then k = 3
b$ = Left$(Chiffre, k)
For i = 1 To k
b1$ = Mid$(b$, i, 1)
    If (k - i + 1) <> 2 Then
        Select Case b1$
            Case "1": Result$ = Result$
                      If i <> 1 Or Len(b$) <> 3 Then
                        Result$ = Result$ + "Un "
                      End If
            Case "2": Result$ = Result$ + "Deux "
            Case "3": Result$ = Result$ + "Trois "
            Case "4": Result$ = Result$ + "Quatre "
            Case "5": Result$ = Result$ + "Cinq "
            Case "6": Result$ = Result$ + "Six "
            Case "7": Result$ = Result$ + "Sept "
            Case "8": Result$ = Result$ + "Huit "
            Case "9": Result$ = Result$ + "Neuf "
            Case "10": Result$ = Result$ + "Dix "
        End Select
    Else
        Select Case b1$
            Case "1": Result$ = Result$
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "Onze "
                                            i = i + 1
                                    Case "2": Result$ = Result$ + "Douze "
                                            i = i + 1
                                    Case "3": Result$ = Result$ + "Treize "
                                            i = i + 1
                                    Case "4": Result$ = Result$ + "Quatorze "
                                            i = i + 1
                                    Case "5": Result$ = Result$ + "Quinze "
                                            i = i + 1
                                    Case "6": Result$ = Result$ + "Seize "
                                            i = i + 1
                                    Case Else: Result$ = Result$ + "Dix "
                      End Select
            Case "2": Result$ = Result$ + "Vingt "
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "et "
                      End Select
            Case "3": Result$ = Result$ + "Trente "
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "et "
                      End Select
            Case "4": Result$ = Result$ + "Quarate "
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "et "
                      End Select
            Case "5": Result$ = Result$ + "Cinquante "
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "et "
                      End Select
            Case "6": Result$ = Result$ + "Soixante "
                      Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "et "
                      End Select
            Case "7": Result$ = Result$
                    Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "Soixante et Onze "
                                            i = i + 1
                                    Case "2": Result$ = Result$ + "Soixante Douze "
                                            i = i + 1
                                    Case "3": Result$ = Result$ + "Soixante Treize "
                                            i = i + 1
                                    Case "4": Result$ = Result$ + "Soixante Quatorze "
                                            i = i + 1
                                    Case "5": Result$ = Result$ + "Soixante Quinze "
                                            i = i + 1
                                    Case "6": Result$ = Result$ + "Soixante Seize "
                                            i = i + 1
                                    Case Else: Result$ = Result$ + "Soixante dix"
                      End Select
            Case "8": Result$ = Result$ + "Quatre ving "
            Case "9": Result$ = Result$
                    Select Case (Mid$(b$, i + 1, 1))
                                    Case "1": Result$ = Result$ + "Quatre Vingt Onze "
                                            i = i + 1
                                    Case "2": Result$ = Result$ + "Quatre Vingt Douze "
                                            i = i + 1
                                    Case "3": Result$ = Result$ + "Quatre Vingt Treize "
                                            i = i + 1
                                    Case "4": Result$ = Result$ + "Quatre Vingt Quatorze "
                                            i = i + 1
                                    Case "5": Result$ = Result$ + "Quatre Vingt Quinze "
                                            i = i + 1
                                    Case "6": Result$ = Result$ + "Quatre Vingt Seize "
                                            i = i + 1
                                    Case Else: Result$ = Result$ + "Quatre Vingt Dix"
                      End Select
        End Select
    End If
If k = 3 And i = 1 Then Result$ = Result$ + "Cent "
Next i
Result$ = Result$ + ext$
Chiffre = Right$(Chiffre, Len(Chiffre) - k)
Loop
ChiffreToLettre = Result$
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.