Chiffres-lettres facturier

Fermé
limavant - 27 févr. 2015 à 19:07
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 - 28 févr. 2015 à 14:00
Bonjour,
Je suis en train de réaliser un facturier.
J'ai téléchargé un script pour la fonction chifrelettre pour transformer le montant de la facture en lettre. Le problème c'est que je veux transformer en lettre 3 chiffres après la virgule alors que cette fonction n'assure que 2.
Je veux aussi que la première lettre soit en majuscule.
Ci-dessous le script.
Aidez-moi à résoudre ce petit problème svp.
Function Chiffrelettre(s)
Dim a As Variant, gros As Variant
a = 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")
gros = Array("", "billions", "milliards", "millions", "mille", "Dinars", "billion", _
"milliard", "million", "mille", "Dinars")
sp = Space(1)
chaine = "00000000000000"
millime = s * 100 - (Int(s) * 100)
s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
s = chaine + s
'billions au centaines
gp = 1
For k = 1 To 5
x = Mid(s, gp, 1): C = a(Val(x))
x = Mid(s, gp + 1, 2): D = a(Val(x))
If k = 5 Then
If t2 <> "" And C & D = "" Then mydz = "Euros" & sp: GoTo fin
If t <> "" And C = "" And D = "un" Then mydz = "un Dinars" & sp: GoTo fin
If t <> "" And t2 = "" And C & D = "" Then mydz = "de Dinar" & sp: 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 & sp & "cents " & gros(k) & sp: GoTo fin
If D = "" And C = "un" Then mydz = "cent " & gros(k) & sp: GoTo fin
If D = "un" And C = "" Then myct = IIf(k = 4, gros(k) & sp, "un " & gros(k + 5) & sp): GoTo fin
If D <> "" And C = "un" Then mydz = "cent" & sp
If D <> "" And C <> "" And C <> "un" Then mydz = C & sp & "cent" + sp
myct = D & sp & gros(k) & sp
fin:
t2 = mydz & myct
t = t & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
D = a(millime)
If t <> "" Then myct = IIf(millime = 1, " millime", " millimes")
If t = "" Then myct = IIf(millime = 1, " millime", " millime")
If millime = 0 Then D = "": myct = ""
Chiffrelettre = t & D & myct
End Function







3 réponses

Bonjour
pour la 3emme decimal je ses pas

et pour la premiere lettre en Majuscule
mettre a la fin de la Function
chiffrelettre = Application.Proper(t & d & myct)

A+
Maurice
1
Problème pas toujours résolu :(
0
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 1 057
28 févr. 2015 à 14:00
0