Fonction numText
Résolu
mchotard
Messages postés
457
Date d'inscription
Statut
Membre
Dernière intervention
-
tsouli.f.kamel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
tsouli.f.kamel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
4 réponses
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
merci mais la formule ne fonctionne pas. Le code numtext est une fonction complémentaire à télécharger
Cdlt
Cdlt
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
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.
numtext(a1;"euros";2)
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
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 //