Fonction numText
Résolu/Fermé
mchotard
Messages postés
425
Date d'inscription
vendredi 6 mai 2011
Statut
Membre
Dernière intervention
30 octobre 2024
-
28 déc. 2014 à 10:57
tsouli.f.kamel Messages postés 2 Date d'inscription jeudi 28 avril 2016 Statut Membre Dernière intervention 23 mai 2016 - 23 mai 2016 à 11:48
tsouli.f.kamel Messages postés 2 Date d'inscription jeudi 28 avril 2016 Statut Membre Dernière intervention 23 mai 2016 - 23 mai 2016 à 11:48
4 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 413
28 déc. 2014 à 11:01
28 déc. 2014 à 11:01
Bonjour
je ne connais pas ce code qui correspond sans doute à un age récent d'Excel.
Mais toutefois, dans la logique on devrait pouvoir écrire:
=NUMTEXT(ENT(A1);"euro";2)&" "&A1-ENT(A1)
du moins je crois puisque je ne peux pas tester
crdlmnt
je ne connais pas ce code qui correspond sans doute à un age récent d'Excel.
Mais toutefois, dans la logique on devrait pouvoir écrire:
=NUMTEXT(ENT(A1);"euro";2)&" "&A1-ENT(A1)
du moins je crois puisque je ne peux pas tester
crdlmnt
mchotard
Messages postés
425
Date d'inscription
vendredi 6 mai 2011
Statut
Membre
Dernière intervention
30 octobre 2024
39
28 déc. 2014 à 12:09
28 déc. 2014 à 12:09
merci mais la formule ne fonctionne pas. Le code numtext est une fonction complémentaire à télécharger
Cdlt
Cdlt
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
28 déc. 2014 à 15:26
28 déc. 2014 à 15:26
Bonjour,
Il y a un classeur à télécharger, cela met les euros et les cents en allant dans la macro Alt F11, module1:
Public Function ConvNumberLetter(Nombre As Double, Optional Devise As Byte = 0,
changer le 0 par un 1
https://www.excel-downloads.com/threads/macro-xla-conversion-nombre-en-lettre.136580/
Il y a un classeur à télécharger, cela met les euros et les cents en allant dans la macro Alt F11, module1:
Public Function ConvNumberLetter(Nombre As Double, Optional Devise As Byte = 0,
changer le 0 par un 1
https://www.excel-downloads.com/threads/macro-xla-conversion-nombre-en-lettre.136580/
Bonjour
a mettre dans une cellule =ChiffreLettre(C2)
Voila une macro
A+
Maurice
a mettre dans une cellule =ChiffreLettre(C2)
Voila une macro
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 = "Dinars Algériens" & 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 'ChiffreLettre = Application.Proper(t & d & myct) End Function
A+
Maurice
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
29 déc. 2014 à 17:35
29 déc. 2014 à 17:35
Bonjour,
tu peux aussi aller là : http://www.excelabo.net/excel/chiffres_en_lettres
cdlt
tu peux aussi aller là : http://www.excelabo.net/excel/chiffres_en_lettres
cdlt
tontong
Messages postés
2563
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 octobre 2024
1 058
29 déc. 2014 à 18:07
29 déc. 2014 à 18:07
Bonjour,
Même si on ne prend pas en compte la recommandation de réforme de 1990 il faut des traits d'union entre les éléments pour les nombres inférieurs à cent sauf s'il ya un "et": "vingt et un" mais "quatre-vingt-douze".
L'array a= a besoin de quelques corrections.
Même si on ne prend pas en compte la recommandation de réforme de 1990 il faut des traits d'union entre les éléments pour les nombres inférieurs à cent sauf s'il ya un "et": "vingt et un" mais "quatre-vingt-douze".
L'array a= a besoin de quelques corrections.
28 déc. 2014 à 12:14
Sur mon grenier j'ai trouver une macro Numtext avec 6 arguments:
Mémo des arguments:
1 Référence qui contient le nombre en chiffres ou ce nombre.
2 UnitéEntSing: texte au singulier de l'unité à afficher pour la partie entière.
3 NbChiffresDec: nombre de chiffres décimaux pris en compte (arrondi standard).
4 UnitéDecSing: texte au singulier de l'unité à afficher pour la partie décimale.
5 UnitéEntPlur: texte au pluriel de l'unité à afficher pour la partie entière. Par défaut un "s" est ajouté au texte de l'unité au singulier.
6 UnitéDecPlur: texte au pluriel de l'unité à afficher pour la partie décimale. Par défaut un "s" est ajouté au texte de l'unité au singulier.
Là l'écriture des décimales ne pose pas de problème.
28 déc. 2014 à 14:48
numtext(a1;"euros";2)
28 déc. 2014 à 15:47
La mienne commence par:
Function NumText(Nombre As Currency, Optional UnitéEntSing As String, Optional NbChiffresDec As Integer, _
Optional UnitéDecSing As String, Optional UnitéEntPlur As String, Optional UnitéDecPlur As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency, Xlion As Long
Dim TxtEntier As String, TxtDécimal As String
' --- Calcul éventuellement le pluriel des unités ---------------
If UnitéEntSing <> "" And UnitéEntPlur = "" Then
UnitéEntPlur = UnitéEntSing & "s"
Hélas je ne retrouve pas l'origine et je me suis aperçu que j'avais fais des adaptations personnelles que je n'ose pas communiquer étant donné mon niveau de compétence en vba ;-)
J'ai récemment recommandé une autre macro:
https://forums.commentcamarche.net/forum/affich-31244435-speelnumber-cent-et-mille#p31254479
28 avril 2016 à 21:21
Je voie que vous étiez dans le bon chemin.
j'ai essayé le texte suivant:
=NumText(ENT(A1);"Dirhams")&"et "&NumText(100*(A1-ENT(A1));"Centimes")
ça a bien marché.
exemple:
A1=1234,56
Avec le texte qu'on a introduit, on essai de diviser ce nombre en deux.
un premier qui est 1234
et un deuxième qui sera 56,
la gymnastique est d'obtenir le nombre après la virgule; pour y faire :
1234,56-1234=0,56
100x0,56=56.
On converti le premier en LETTRE, on sépare par un ET, puis on converti le deuxième en LETTRE.
Merci de m'informer si ça a marché pour vous //
2 mai 2016 à 01:21