Excel - Réaliser un convertisseur de chiffre en lettres

  • il y a 8 ans
Cette vidéo va vous montrer comment convertir des chiffres en toutes lettres.

Ci-dessous le code de la fonction :

Public Function ChiffreLettre(Valeur)

'Déclaration des variables
Dim MesValeurs As Variant, GrosMontant As Variant
Dim Espace As String

'Affectation des variables dans un tableau de type Array
MesValeurs = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
"huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", _
"dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt trois", "vingt quatre", _
"vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf", "trente", "trente et un", _
"trente deux", "trente trois", "trente quatre", "trente cinq", "trente six", "trente sept", _
"trente huit", "trente neuf", "quarante", "quarante et un", "quarante deux", "quarante trois", _
"quarante quatre", "quarante cinq", "quarante six", "quarante sept", "quarante huit", _
"quarante neuf", "cinquante", "cinquante et un", "cinquante deux", "cinquante trois", _
"cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept", "cinquante huit", _
"cinquante neuf", "soixante", "soixante et un", "soixante deux", "soixante trois", _
"soixante quatre", "soixante cinq", "soixante six", "soixante sept", "soixante huit", _
"soixante neuf", "soixante dix", "soixante et onze", "soixante douze", "soixante treize", _
"soixante quatorze", "soixante quinze", "soixante seize", "soixante dix sept", _
"soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt un", _
"quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre", "quatre-vingt cinq", _
"quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit", "quatre-vingt neuf", _
"quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze", "quatre-vingt treize", _
"quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize", "quatre-vingt dix sept", _
"quatre-vingt dix huit", "quatre-vingt dix neuf")
GrosMontant = Array("", "billions", "milliards", "millions", "mille", "euros", "billion", _
"milliard", "million", "mille", "euro")
Espace = Space(1)
chaine = "00000000000000" 'Limite de ma valeur à 14 chiffre => Billion
centime = Valeur * 100 - (Int(Valeur) * 100)
Valeur = Str(Int(Valeur)): lg = Len(Valeur) - 1: Valeur = Right(Valeur, lg): lg = Len(Valeur)
If lg "" And C & d = "" Then mydz = "Euros" & Espace: GoTo fin
If T "" And C = "" And d = "un" Then mydz = "un euros" & Espace: GoTo fin
If T "" And t2 = "" And C & d = "" Then mydz = "d'Euros" & Espace: GoTo fin
If T & C & d = "" Then myct = "": mydz = "": GoTo fin
End If
If C & d = "" Then GoTo fin
If d = "" And C "" And C "un" Then mydz = C & Espace & "cents " & GrosMontant(k) & Espace: GoTo fin
If d = "" And C = "un" Then mydz = "cent " & GrosMontant(k) & Espace: GoTo fin
If d = "un" And C = "" Then myct = IIf(k = 4, GrosMontant(k) & Espace, "un " & GrosMontant(k + 5) & Espace): GoTo fin
If d "" And C = "un" Then mydz = "cent" & Espace
If d "" And C "" And C "un" Then mydz = C & Espace & "cent" + Espace
myct = d & Espace & GrosMontant(k) & Espace
fin:
t2 = mydz & myct
T = T & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
d = MesValeurs(centime)
If T "" Then myct = IIf(centime = 1, " centime", " centimes")
If T = "" Then myct = IIf(centime = 1, " centime d'Euro", " centimes d'Euro")
If centime = 0 Then d = "": myct = ""
ChiffreLettre = T & d & myct
End Function

Recommandée