Galère pour implémenter numtext ou similaire

  • Initiateur de la discussion Initiateur de la discussion TiltAgain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

TiltAgain

Guest
Bonsoir,

je viens de créer un contrat de location type pour la location saisonnière. Une page "infos" où je rentre les infos (prix, coordonnées locataires, dates, etc) afin que tout se reporte dans le contrat.
Et je cherche à implémenter une fonction qui écrit en lettres la somme rentrée en chiffre. Numtext en donne la possibilité.
Le problème c'est que visiblement ce n'est pas compatible avec Office Mac…

Quelqu'un aurait une solution ?

Merci par avance.
 
Re : Galère pour implémenter numtext ou similaire

bonsoir,

j'ai cette fonction
exemple avec la date en A1
et la fonction dans B1 =chiffrelettre($A$1)

Code:
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
 
Re : Galère pour implémenter numtext ou similaire

re

c'est très simple

1' côté visual basic (Alt F11) dans la colonne gauche tu fais clic droit et tu choisi:
insertion module ce qui te créera un module1 !
tu clic sur module et tu colles dans la fenêtre la fonction que je t'ai mise c'est tout!
2' sur excel dans ta feuille
exemple si tu as une date en A1 tu colles ceci dans la cellule que tu veux =chiffrelettre($A$1)
c'est tout !

exemple dans ce fichier d'où vient la fonction !
 

Pièces jointes

Dernière édition:
Re : Galère pour implémenter numtext ou similaire

Merci de ton aide c'est bien sympa.
Je viens d'essayer et je crois qu'office sous Mac c'est vraiment la m****.
J'ai ouvert visual basic editor / clic droit dans la fenêtre qui s'ouvre/insérer/Module mais Module est grisé…
Quelle poisse !
 
Re : Galère pour implémenter numtext ou similaire

Le truc c'est que lorsque j'ouvre ton fichier, il me dit qu'il y a une macro et que les macro sont desactivées. Alors il me propose de les activer. Puis il répare les erreurs… Et enfin ton fichier s'affiche mais au lieu de voir "dix neuf euros" par exemple il est écrit "*$NOM".
C'est un problème logiciel qui ne gère pas ou mal les macros.
Sinon j'ai compris ton fichier, à peu prés ^^
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour