Probleme avec ma formule chiffre en lettre

Bonjour le forum!

Jai un probléme avec ma formule chiffreLettre. il me fait pas appraitre des lettres exact par rapport au montant. (image en pj)

Est ce que qlqun pourrait m'aider?

Voici la formule VBA:

Function chiffrelettre(chiffre) ' Youky

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", "FCFA", "billion", _

"milliard", "million", "mille", "FCFA")

sp = Space(1)

chaine = "00000000000000"

centime = chiffre * 100 - (Int(chiffre) * 100)

chiffre = Str(Int(chiffre)): lg = Len(chiffre) - 1: chiffre = Right(chiffre, lg): lg = Len(chiffre)

If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""

chiffre = chaine + chiffre

'billions au centaines

gp = 1

For k = 1 To 5

x = Mid(chiffre, gp, 1): c = a(Val(x))

x = Mid(chiffre, gp + 1, 2): d = a(Val(x))

If k = 5 Then

If t2 <> "" And c & d = "" Then mydz = "FCFA" & sp: GoTo fin

If t <> "" And c = "" And d = "un" Then mydz = "un FCFA" & sp: GoTo fin

If t <> "" And t2 = "" And c & d = "" Then mydz = "de FCFA" & 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(centime)

If t <> "" Then myct = IIf(centime = 0, " centime", " centimes")

If t = "" Then myct = IIf(centime = 0, " centime", " centimes")

If centime = 0 Then d = "": myct = ""

chiffrelettre = t

End Function

capture4

Bonjour,

Si tu as arrondi au supérieur, ou ôter les chiffres après la virgule

c'est logique

ta formule avec les % doit donner 310 923,50

Et c'est par ou que je dois arrondir stp?

C'est bon! probléme resolu

Merci

Rechercher des sujets similaires à "probleme formule chiffre lettre"