Menu

Conversion chiffre en lettres excel 2016 [Résolu]

gturkmen 42 Messages postés lundi 26 novembre 2007Date d'inscription 12 février 2018 Dernière intervention - 10 sept. 2017 à 08:43 - Dernière réponse :  So.chi
- 4 mai 2018 à 10:20
Bonjour,
J'ai excel 2016 et je voudrais convertir des chiffres en lettres. du style 112,20€ = cent douze euros et vingt cts. J'ai essayé plusieurs modules mais sa ne fonctionne pas sous excel 2016. Avez vous une idee ?


Afficher la suite 

Votre réponse

15 réponses

gturkmen 42 Messages postés lundi 26 novembre 2007Date d'inscription 12 février 2018 Dernière intervention - 10 sept. 2017 à 10:10
0
Utile
Bonjour, nan sa fonctionne pas avec 2016. comme erreur il met "#nom?" dans la cellule qui contient cette formule : =ConvNumberLetter(A4;1;0;0;1)
PapyLuc51 1465 Messages postés dimanche 3 mai 2009Date d'inscription 23 mai 2018 Dernière intervention - 10 sept. 2017 à 10:41
Bon alors je passe la main aux utilisateurs d'excel 2016.

Cordialement
Commenter la réponse de gturkmen
fabien25000 265 Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention - Modifié par fabien25000 le 10/09/2017 à 12:08
0
Utile
Bonjour,
pas possible d'aprés l'aide excel :
"Comment convertir des nombres en texte, par exemple, 123 en cent vingt-trois ?
Ce n’est malheureusement pas possible avec la fonction TEXTE. Pour cela, vous devez utiliser du code Visual Basic pour Applications (VBA). L’article suivant décrit une méthode : Comment faire pour convertir une valeur numérique en mots français dans Excel
"
https://support.office.com/fr-fr/article/Fonction-TEXTE-20D5AC4D-7B94-49FD-BB38-93D29371225C?NS=EXCEL&Version=16&SysLcid=1036&UiLcid=1036&AppVer=ZXL160&HelpId=xlmain11.chm60096&ui=fr-FR&rs=fr-FR&ad=FR

Quand on ne dispose que d'un marteau tout les problèmes ressemblent à un clou
fabien25000 265 Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention - 10 sept. 2017 à 12:03
du moins pas avec une formule mais en vba si
tontong 2230 Messages postés mercredi 3 février 2010Date d'inscription 16 mai 2018 Dernière intervention - 10 sept. 2017 à 14:51
Bonjour,
Et pourtant des solutions hors vba existent:
http://www.cjoint.com/c/GIkmWHI2lO4

On peut retenir ce modèle comme une démonstration de la puissance des feuilles de calcul.
fabien25000 265 Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention > tontong 2230 Messages postés mercredi 3 février 2010Date d'inscription 16 mai 2018 Dernière intervention - 10 sept. 2017 à 17:57
Des solutions oui, mais il n'existe pas de formule dédiée à ce but
votre fichier est néanmoins intéressant, la proposition VBA de l'aide excel, est de ce que j'ai vu(j'ai lu en diagonale), basée sur le même principe
Commenter la réponse de fabien25000
mchotard 132 Messages postés vendredi 6 mai 2011Date d'inscription 15 avril 2018 Dernière intervention - Modifié par baladur13 le 8/01/2018 à 09:39
0
Utile
Salut
Essaie de copier cette macro dans ton fichier (dans visual basic). Puis ensuite dans ton fichier tu copie la formule "=chiffrelettre(référence de la cellule de chiffre).
J'utilise cette fonction et cela marche. Si tu as besoin envoie moi un fichier.
Bonne chance

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", "Euros", "billion", _
"milliard", "million", "mille", "Euro")
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 = "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
Il faut juste entrer dans ton code visual basic. Chercher "Euro" et le remplacer par "FCFA". Pour être malin, tu copies Euro, tu fais CTRL H, tu fais remplacer tout par FCFA. Regarde s'il ne reste pas d'euro. Et c'est fini.
LASOMA68 1 Messages postés mercredi 11 avril 2018Date d'inscription 11 avril 2018 Dernière intervention - 11 avril 2018 à 19:40
Bonsoir,
J'ai suivi les indications de SUPPORT OFFICE "convertir des nombres en mots", la formule à insérer dans le module est inexacte. Je me tourne donc vers vous : Est-il possible de vous envoyer mon fichier ? car j'ai bien essayé de comprendre mais....
Merci d'avance et très bonne soirée
Merci, ça marche super bien et facil à faire.
une denière question: comment faire pour ne pas repeter l'insertion de la macro dans tous mes fichiers excel?
Bonjour,

Es-ce que quelqu'un peut m'expliquer comment entrer la macro dans Visual Basic. Je sais pas ce que c'est..
Commenter la réponse de mchotard
PapyLuc51 1465 Messages postés dimanche 3 mai 2009Date d'inscription 23 mai 2018 Dernière intervention - Modifié par PapyLuc51 le 10/09/2017 à 09:56
-1
Utile
Bonjour

Un fichier qui fonctionne sur excel 2013. J'espère que ça ira pour Excel 2016.

Conversion de nombres en lettres (avec ou sans symbole monétaire €, $, £)

Cordialement
Commenter la réponse de PapyLuc51