Conversion de Chiffre en Lettre

  • Initiateur de la discussion Initiateur de la discussion Djoe
  • 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 !

Djoe

XLDnaute Nouveau
Bonjour à tous.
et ben voila il y a quelque mois que j'ai commencé à utiliser les modules VBA (nbletter) d'excel que j'ai découvert dans votre forum et petit à petit j'ai réussi a la formulé selon mon besoin (3 chiffre après la virgule, monnaie et sous monnaie, langue etc).
et tout d'un coup j'ai perdu le module suite à une mauvaise manipulation ou je pense que c suite à l'installation de (morefunc) et que je n'ai pas pu entrer pour modifier celle qui concerne la (nbletter) il me demande mot de passe pour pouvoir modifier le contenu de (morefunc) alors j'ai retourné au départ et j'ai téléchargé une module que je pense de votre forum elle est bien sauf que j'ai un seul souci pour le moment et que j'aime bien que vous m'aidez à le résoudre voila 2 exemple:
  • le montant en chiffre étant: (46 479,900)
  • Voila le module qu'est ce qu'elle m'écrit: (Quarante-Six Mille Quatre Cent Soixante-Dix-Neuf Dinars Quatre-Vingt-Dix Millimes)
  • Correction:
    Quarante-Six Mille Quatre Cent Soixante-Dix-Neuf Dinars, Neuf Cent Millimes.
  • ou bien
    Quarante-Six Mille Quatre Cent Soixante-Dix-Neuf Dinars, 900 Millimes.
autres exemple
  • 3 394,500
  • Voila le module qu'est ce qu'elle m'écrit:
    (Trois Mille Trois Cent Quatre-Vingt-Quatorze Dinars Cinquante Millimes)
  • Correction:
    Trois Mille Trois Cent Quatre-Vingt-Quatorze Dinars, Cinq Cent Millimes.
  • ou bien
    Trois Mille Trois Cent Quatre-Vingt-Quatorze Dinars, 500 Millimes.
Merci d'avance et bonne journée à tout le monde

Djoe
 
Roger vraiment je trouve pas les mots qui me servent pour vous remercier infiniment.
mais voila merci beaucoup et j’espère être en mesure de vous le rendre une fois.
je vais faire la 2eme façon et je vous donne les résultat plus tard.
ciao et bonne journée à tous.
 
Salut tout le monde j’espère que vous allez tous bien
merci patron (Roger) pour votre précieuse collaboration le résultat est bonne et chaque fois je découvre une chose aujourd’hui j'ai arrivé a modifié les sous monnaies de toute lettre vers un chiffre. juste une chose y'a t'il une possibilité de faire la 1er lettre de chaque mot en majuscule et c tout.
Bon fin de journée
Bon weekend
et à lundi
bye
 
Re...

Bonjour tout le monde
Bonjour Maitre Roger
s'il vous plais 1er lettre de chaque mot en majuscule et c tout
Bonne journée et à bien tôt.
Djoe

Ce problème est réglé dans le classeur joint au message #11 : voir l'onglet Ce lien n'existe plus qui détaille les paramètres utilisables. Le septième paramètre permet diverses possibilités d'utilisation des majuscules. Je vous les rappelle dans le classeur joint.

Bonne nuit.


ℝOGER2327
#8329


Samedi 7 Absolu 144 (Saint Alambic, abstracteur - fête Suprême Quarte)
28 Fructidor An CCXXIV, 9,3166h - maïs
2016-W37-3T22:21:35Z
 

Pièces jointes

Suite...

On a aussi :
Code:
=MAJUSCULE(Num_Alph($A$1;4;3))
=NOMPROPRE(Num_Alph($A$1;4;3))

Bonne journée.

ℝOGER2327
#8330


Dimanche 8 Absolu 144 (Absinthe, ci devant Saint Alfred - fête Suprême Tierce)
29 Fructidor An CCXXIV, 4,0684h - marron
2016-W37-4T09:45:51Z
 
Bonjour, auriez vous le même macro mais on retient le mot "virgule" au lieu de centimes SVP

Merci

Bon jour Spyro.

Drôle d'idée !

Il suffit de remplacer le mot «centime» par le mot «virgule» dans le code. Les trois lignes concernées par cette modification sont dans la fonction Num_Alph :​
VB:
  k = 1: r(k, 0) = Array(" euro", "s", "", "", p, " d'euro", " D'"): r(k, 1) = Array("", "", " centime", ""): r(k, 2) = Array("", "", "s", "")
  k = 4: r(k, 0) = Array(" dinar", "s", " tunisien", "s", p, " de dinar", " De"): r(k, 1) = Array("", "", " centime", " millime"): r(k, 2) = Array("", "", "s", "s")
  k = 5: r(k, 0) = Array(" dinar", "s", " algérien", "s", p, " de dinar", " De"): r(k, 1) = Array("", "", " centime", ""): r(k, 2) = Array("", "", "s", "")
xxx
Elles deviennent :​
VB:
  k = 1: r(k, 0) = Array(" euro", "s", "", "", p, " d'euro", " D'"): r(k, 1) = Array("", "", " virgule", ""): r(k, 2) = Array("", "", "s", "")
  k = 4: r(k, 0) = Array(" dinar", "s", " tunisien", "s", p, " de dinar", " De"): r(k, 1) = Array("", "", " virgule", " millime"): r(k, 2) = Array("", "", "s", "s")
  k = 5: r(k, 0) = Array(" dinar", "s", " algérien", "s", p, " de dinar", " De"): r(k, 1) = Array("", "", " virgule", ""): r(k, 2) = Array("", "", "s", "")

Bonne journée.


ℝOGER2327
#8336


Samedi 14 Absolu 144 (Saint Sophrotatos l’Arménien, pataphysicien - fête Suprême Quarte)
5ème Sanculottide An CCXXIV, 5,5598h - fête des Récompenses
2016-W38-3T13:20:36Z
 
Merci pour ta réponse Roger

Au fait, ce que voulait c'est garder tes premières formules nombres en lettres avec le 7ème parametres avec la 1ere lettres en majuscules mais au lieu de "et"ou'centimes" a la fin "virgule" avant l'Unité ($)

exemples: 336 000,12 Dollar>Trois cent trente-six mille virgule douze Dollar

Et serait il possible d'avoir un fichier .xla et le code de commande comme ci dessus stp

Bonne Continuation!
 
Dernière édition:
Suite...

Votre demande est plus simple que celle de Djoe. Vous pouvez essayer cette fonction à la place de Num_Alph :​
VB:
Function Num_Alph_V$(ByVal v, Optional h As Boolean = True)
'
'|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
'| Fonction créée le 5 Sanculottide CCXXIV / mercredi 21 septembre 2016 par ROGER2327 |
'|____________________________________________________________________________________|
'
'Remarque :  La fonction n'arrondit pas les données.
Dim a$, b$, d$, e$
Const y$ = "*000000", z$ = "zéro"
  If v <> "" And IsNumeric(v) Then
    a = Left$(v & ",", InStr(1, v & ",", ",") - 1)
    If Len(a) <> Len(v) Then b = Left$(Right$(v, Len(v) - InStr(1, v, ",")) & "00", 2) Else b = "0"
    d = NbLit3(0 & b, 0): If d = z Then b = "0"
    e = NbLit3(0 & a, 0)
    If 0 < b And b <= 9 Then d = z & " " & d
    If b <> 0 Then e = e & " virgule " & d Else If Replace(a, " ", "") Like y Then e = e & " de"
    e = e & " dollar" & IIf(v >= 2, "s", "")
    If h Then e = UCase(Left$(e, 1)) & Right$(e, Len(e) - 1)
    Num_Alph_V = e
  End If
End Function
Le seul paramètre optionnel conservé permet de mettre une majuscule (paramètre omis ou VRAI) ou une minuscule (paramètre FAUX) au début du texte.

Quant à transformer tout cela en «macro» complémentaire, encore faudrait-il que je fusse certain que le code est solide. Cela nécessite de très nombreux tests que je n'ai pas le courage d’entreprendre. Libre à vous de faire ce travail : le code est libre.​

Bonne soirée.

ℝOGER2327
#8337


Samedi 14 Absolu 144 (Saint Sophrotatos l’Arménien, pataphysicien - fête Suprême Quarte)
5ème Sanculottide An CCXXIV, 7,6616h - fête des Récompenses
2016-W38-3T18:23:17Z
 
Bonjour
(...)
Bonjour.​


(...)
Thanks Roger,
(...)
Moi pas comprendre.​

(...)
sinon excel me di qu 'il y a une erreur sur cette partie quand je fait alt+f11
(...)
Quand je disais
Vous pouvez essayer cette fonction à la place de Num_Alph
je ne sous-entendais pas qu'il fallait supprimer le reste du code et, notamment, NbLit3.
NbLit3 est une fonction appelée par Num_Alph et Num_Alph_V : Certainement n'avez-vous pas seulement remplacé la fonction Num_Alph par la fonction Num_Alph_V, mais aussi supprimé tout ou partie des fonctions annexes.
Je remets le code complet en pièce jointe (Nombres_en_lettres_ROGER2327.txt)​

(...)
Et stp pourrait tu m'expliquer avec un petit tuto comment exporter en macro une fois que j'ai tout vérifier
(...)
Pour exporter un module de code, voyez l'onglet «Instructions» du classeur joint (qui contient aussi le module Nombres_en_lettres_ROGER2327 et un rappel du message #14 indiquant la marche à suivre pour l'installer proprement dans un classeur).
Pour créer un «classeur de macros complémentaires», reportez-vous à la nombreuse littérature existant sur la toile. Voyez, par exemple, ici. Rédiger un «tuto» comme vous dites, dépasse mes compétences. J'en suis désolé.​

(...)
Have a nice day!
Moi pas comprendre.​

Ayez un beau jour !


ℝOGER2327
#8338


Dimanche 15 Absolu 144 (Ethernité - fête Suprême Tierce)
1[SUP]er[/SUP] Vendémiaire An CCXXV, 5,5050h - raisin
2016-W38-4T13:12:43Z
 

Pièces jointes

- 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

Discussions similaires

O
Réponses
4
Affichages
2 K
Orgreen
O
Retour