Icône de la ressource

Nombres en lettre special pays francophone et monnaie française (Suisse Belgique,CFA,CFP) 2.0

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

Nombres en lettre special pays francophone et monnaie française (Suisse Belgique,CFA,CFP) - Nombres en lettre special pays francophone

Bonjour
comme cette demande m'a souvent été faite
a savoir; " pourquoi je n’incluait pas la suisse et la Belgique"
voici la petite dernière de mes fonctions de conversion nombre en lettres
cette fois ci celle ci est dédiée uniquement au pays francophone et monnaie française , suisse(CHF) , Belgique , CFA , CFP et bien sur l'euro
elle se nomme NbToLettresFSB
la boucle est bouclée tout le monde a la sienne ;)
et bien sur utilisable en formule
[ATTACH type="full"...

En savoir plus sur cette ressource...
 

patricktoulon

XLDnaute Barbatruc
patricktoulon a mis à jour Nombres en lettre special pays francophone et monnaie française (Suisse Belgique,CFA,CFP) avec une nouvelle entrée de mise à jour:

petites corrections

petite correction le moins un sur dizaine et plus 10 sur unité selon le séparateur(monnaie/virgule)
ajout de la monnaie au "centime(s) si entier=0
vingt centimes --devient--> vingt centimes d'euro

VB:
Function NbToLettresFSB(chaine As String, Optional region As String = "")
    Dim It, TR, diz, Ul, c, d, u, dix, I&, Tranche, monnaie$, Ctme$, Chain$, T, X&, Ch, Et$, Entier$, Dec$, de, q
    Tranche = Array(" nonilliard", " nonillion", " octilliard", " octillion", " septilliard", "...

Lire le reste de cette entrée de mise à jour...
 

hijackfr

XLDnaute Nouveau
Bonjour,

chez moi sur Excel 2021, les milliers ne sont pas pris en compte,

pouvez -vous m'aider à trouver pourquoi s'il vous plait?
 

Pièces jointes

  • Capture d'écran 2023-11-11 142302.png
    Capture d'écran 2023-11-11 142302.png
    96.9 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
re
donne le fichier sur le quel tu a testé sur le mien ca fonctionne correctement
1699710434961.png
 

hijackfr

XLDnaute Nouveau
merci de prendre le temps de me répondre
j'ai testé aussi le fichier 1 2022 7.2 nombre en lettre FR.xlsm, là j'ai vu que 1.01 donné
un virgule un
et non un virgule zéro un
 

Pièces jointes

  • Nblettres france suisse belgique CFA CFP.xlsm
    28.7 KB · Affichages: 4

hijackfr

XLDnaute Nouveau
Tant pis, bizarre, j'ai testé le fichier "nombre en lettre belge V 2023 1.1 BETA euro"
Lui fonctionne bien si ce n'est qu'étant français les expressions belges me déconcertent un peu
juste 1001 qui est traduit par : "un mille un" et non par "mille un"

merci d'avoir pris le temps
 
Dernière édition:

hijackfr

XLDnaute Nouveau
Je suis d'accord,
Pour moi 1,01 ce n'est pas un virgule un mais un virgule zéro un ou un euro et un centime.
Un euro et un centime ce n'est pas la même chose que un euro et dix centimes.


Enfin c'est pour comprendre et échanger, pas de polémique pour moi
 

patricktoulon

XLDnaute Barbatruc
Tant pis, bizarre, j'ai testé le fichier "nombre en lettre belge V 2023 1.1 BETA euro"
Lui fonctionne bien si ce n'est qu'étant français les expressions belges me déconcertent un peu
juste 1001 qui est traduit par : "un mille un" et non par "mille un"

merci d'avoir pris le temps
c'est bizare c'est justement une partie du code qui traitre cette partie ,et elle est plutot explicite

VB:
  If Ch(I) = 1 And TR = " mille" Then u = ""
traduction

si la portion ch(i)= 1 et que la tranche tr =" mille" alors unité = rien


donc si on tombe sur 1001
il y a deux tranches
1 et 001
soit 001pour la tranche mille
et 001 pour la tranche sans rien(celle qui termine l'entier

on voit bien dans la ligne de code que u="" si la tranche de 3 chiffre vaut 1 et que l'on est dans la tranche " mille"

toutes les erreurs que tu me dis sont completement incohérentes
je viens de le tester sur 2016 et 2013

donc comme je le soupconne avec 365 il y a certainement un problème de calcul iteratif
ou un soucis avec le number format

@Bernard_XLD
1,01 en monaie on dit un euro et un centime et pas un euro et zero-un centime
maintenant avec le separateur " virgule "
si vous y tenez ajoutez juste en de sous la ligne "for x= 0 to ubount(t)
cette ligne
Code:
  If X = 1 And Val(T(0)) > 0 And monnaie = " virgule " Then diz(0) = "zéro" Else diz(0) = ""
comme dans la capture ci dessous
1699731297470.png


voila voila y a qu'a demander ;)
 

hijackfr

XLDnaute Nouveau
merci pour tes commentaires qui me permettent de mieux comprendre.
Car je suis un débutant en vba, sans réelle connaissances.

Par contre pour répondre à ta phrase :"
donc comme je le soupconne avec 365 il y a certainement un problème de calcul iteratif
ou un soucis avec le number format"

je suis sous Excel 2021
 

patricktoulon

XLDnaute Barbatruc
@hijackfr
128 personnes l'ont téléchargé et aucune ne m'a rapporté cette erreur
du millier qui n'est pas pris en compte

pour le "zero" et unité j'ai montré ou il fallait ajouter la ligne

de plus c'est du code basique dans le sens ou je n'utilise pas de formule tord boyeaux
je coupe l'entier par tranche de trois chiffre
chaque tranche c'est centaine/dizaine/unité
et chaque tranche est indexé en partant de droite
rien , mille , million , milliard , etc.....

ce moteur est la dernière generation de mes moteurs de convertion simplifié
il doit fonctionner de la même manière sur 2007 à 2021 sans distinction
si c'est pas le cas alors tu a un soucis dans ton excel
d'ailleurs je l'utilise au boulot et au boulot on a des pc avec 365 avec excel 2021
et il n'y a pas de soucis de ce genre
 

Statistiques des forums

Discussions
315 091
Messages
2 116 113
Membres
112 662
dernier inscrit
lou75