Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" a écrit
deux approches valent mieux qu'une ;-)
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" <misange@devinez-ou.net> a écrit
deux approches valent mieux qu'une ;-)
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" a écrit
deux approches valent mieux qu'une ;-)
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" a écrit dans le message de news:
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" <John@discussions.microsoft.com> a écrit dans le message de news:
63AB44FF-334A-4040-B72F-F98B12E5B20D@microsoft.com...
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" a écrit dans le message de news:
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" a écrit dans le message de news:
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" <John@discussions.microsoft.com> a écrit dans le message de news:
63AB44FF-334A-4040-B72F-F98B12E5B20D@microsoft.com...
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
'----------------------------------
Sub Exemple()
MsgBox chiffrelettre(1253.36)
End Sub
'----------------------------------
'----------------------------------
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", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = 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 Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & 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 = 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
'----------------------------------
"John" a écrit dans le message de news:
Bonjour à tous,
Je sais que dans Access il existe un code qui transforme les chiffres en
lettres par exemple : 1220,36 euros MILLE DEUX CENT VINGT EUROS ET TRENTE
SIX
CENTIMES.
Savez-vous s'il existe un code vba similaire pour Excel 2000 à 2007 ?
Merci.
--
John.
Psitt, il me semble que celle que j'ai émise est déjà sur ton site !
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" a écrit dans le message de news:
Non ce n'est pas celle de Frédéric. Mais je raouterai la tienne, deux
approches valent mieux qu'une ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.nethttp://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
Psitt, il me semble que celle que j'ai émise est déjà sur ton site !
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" <misange@devinez-ou.net> a écrit dans le message de news:
u21k3YrAIHA.5328@TK2MSFTNGP05.phx.gbl...
Non ce n'est pas celle de Frédéric. Mais je raouterai la tienne, deux
approches valent mieux qu'une ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
http://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc
Psitt, il me semble que celle que j'ai émise est déjà sur ton site !
De mémoire, sur un fil, il y a déjà un moment, j'avais noté
cet os et proposé 2 procédures différentes !
"Misange" a écrit dans le message de news:
Non ce n'est pas celle de Frédéric. Mais je raouterai la tienne, deux
approches valent mieux qu'une ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.nethttp://www.excelabo.net/excel/fonctionsconversion.php#nombresenlettres
si c'est la macro que tu retrouves sur le site de Frédéric, il y a un os !
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresEnLettresJPPastinelli.txt
Problématique avec toutes les chiffres dont les décimales se terminent ainsi
12.2 256.6 854.8 ...etc