Prix en chiffre transformé en lettres

Résolu/Fermé
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023 - 20 janv. 2016 à 19:21
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023 - 2 févr. 2016 à 20:22
Bonjour.

Déjà, bonne année 2016 à toutes et tous.

Voilà ma question du jour:

Je voudrais, à la façon d'un chèque, remplir un bordereau d'expédition.

Il faudrait que lorsque je rentre, par exemple 123.38, dans une cellule voisine
apparaisse: CENT VINGT TROIS € TRENTE HUIT CTS. (ou CENT VINGT TROIS Euros TRENTE HUIT CTS)

Quelqu'un s'est-il penché sur ce problème ?

Merci




A voir également:

5 réponses

Bonjour
voila une function:
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

et dans la cellule mettre =Chiffrelettre(A1)

A+
Maurice
1
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
25 janv. 2016 à 21:45
si ça ne te dérange pas tu peux me dire ou je met cette fonction
0
Maurice > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
25 janv. 2016 à 21:53
Bonjour
A mettre dans un Module
A+
Maurice
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > Maurice
25 janv. 2016 à 22:42
Merci infiniment
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
29 janv. 2016 à 04:39
Bonjour,

ligne 44 : centime ne vaut pas 1 pour les valeurs de s égales à 2,01; 16,01; 17,01; 18,01; 19,01; 20,01; 64,01; 65,01; 66,01; 67,01; 68,01; 69,01; 70,01; 71,01; 72,01; 73,01 .......

la conséquence n'est pas dramatique mais il traîne un pluriel à "centimes" pour ces valeurs.

un
Dim centime As Integer
suffit à remédier à cette situation.

cordialement
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
20 janv. 2016 à 19:43
Bonjour, c'est possible! Ici, ou tu trouveras une solution. Sur Google tu en trouveras d'autres si elles ne te conviennent pas, c'est très demandé!
0
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023
20 janv. 2016 à 19:55
Merci tyranausor.

J'ai commencé à éplucher Google il y a quelques heures.
Pas mal de liens morts ou incomplets, de réponses qui ne fonctionnent pas et de sites ou je ne veux pas aller (genre Softonic).

Je continue mes "fouilles", et je reviens vers vous si je ne trouve pas.

Bonne soirée et merci encore.
0
Raymond PENTIER Messages postés 58385 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 avril 2024 17 086 > US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023
21 janv. 2016 à 00:16
0
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023 > Raymond PENTIER Messages postés 58385 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 avril 2024
21 janv. 2016 à 19:09
merci Raymond.

Le soucis est que je voudrai utiliser cela sur mon PC de boulot.
Hors, ce genre de manip m'est interdit. Mes accès sous Windows sont très restreints.
C'est dans ce but que je voudrais avoir un classeur avec cette fonction.
Je pourrais, comme je l'ai fais pour 2 ou 3 choses, y déposer ce dernier et l'utiliser.

Bonne soirée.
0
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023
25 janv. 2016 à 18:22
Merci Maurice.
Fonctionne nickel...

Bonne soirée
0
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023
28 janv. 2016 à 20:20
Bonsoir Maurice.

Tout allait bien, mais depuis sauvegarde en format 2003 (est ce bien cela ?),
j'ai un plantage. (beaucoup de manips pour adapter un arrière plan ?)

Je joins le fichier.

Merci

https://www.cjoint.com/c/FACts0l6TQm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour
ses pas un format 2003
ses un format sans macro >= 2007
voila un format 2003
http://www.cjoint.com/c/FACtUg1cMz7

A+
Maurice
0
US17 Messages postés 50 Date d'inscription dimanche 20 septembre 2015 Statut Membre Dernière intervention 9 mai 2023
2 févr. 2016 à 20:22
Merci Maurice.
Toujours aussi efficace.

Bonne soirée
0