nombre  en toutes lettre FR diverse monnaies et autres

nombre en toutes lettre FR diverse monnaies et autres 7.2

patricktoulon

XLDnaute Barbatruc
patricktoulon a mis à jour somme euro en toutes lettre FR Version2 avec une nouvelle version :

Refonte totale de la fonction et organisation du code pour d’éventuels ajout d'options

bonjour
ce fut long et laborieux et des versions il y en eu ;)
chaque ajout d'option mettant en défaut des options déjà établies
j'ai donc tout réécrit différemment
NEW !!
dans l'optique d'avoir une fonction gérant diverses monnaies avec les deux échelles (2/3) décimales
et d'avoir la simple conversion sans monnaie
j'ai fusionné mes deux moteurs

NEW !!
a fin de ne plus avoir a réécrire le code pour une...

Lire la suite de cette mise à jour...
 

patricktoulon

XLDnaute Barbatruc
une toute petite correction pour la version 7(pas grand chose)je ne l'avais pas vu tout de suite désolé
VB:
Case "£": fric = "Livre Sterling": prefixe = "of ": AvecCent = " et ": pluriel = "": cx = 2: If UBound(Part) > 0 Then If Left(Part(1), 2) <> "01" Then centime = "pence" Else centime = "peny"
 

Ravenheld

XLDnaute Nouveau
Bonjour patricktoulon.

Tout d'abord un énorme merci pour la travail accompli, une vraie pépite qui a du / va faire gagner du temps à plein de personnes ❤️❤️❤️.

Une erreur à signaler sur ce fichu "cent" : il est invariable lorsqu'il est suivi de l'adjectif numéral "mille" d’après mon bouquin de règles typographiques.
=> deux cent mille et non deux cents mille

Comme il n'y a que quelques cas où c'est applicable, j'ai contourné "manuellement" en insérant dans la section compile du segment :

VB:
            If t(p) = "deux cents  mille " Then t(p) = "deux cent mille "
            If t(p) = "trois cents  mille " Then t(p) = "trois cent mille "
            If t(p) = "quatre cents  mille " Then t(p) = "quatre cent mille "
            If t(p) = "cinq cents  mille " Then t(p) = "cinq cent mille "
            If t(p) = "six cents  mille " Then t(p) = "six cent mille "
            If t(p) = "sept cents  mille " Then t(p) = "sept cent mille "
            If t(p) = "huit cents  mille " Then t(p) = "huit cent mille "
            If t(p) = "neuf cents  mille " Then t(p) = "neuf cent mille "

Encore merci !!!
 

patricktoulon

XLDnaute Barbatruc
Bonjour
en effet c'est une petite erreur
mais perso plutôt que de patcher avec 10 lignes qui vont bien ralentir la fonction
je préfère soigner le problème dans le moteur

donc
j'ajoute une variable "tr" dans la ligne de déclaration de variable
1643787823449.png

et au début du moteur de conversion
'--------------------------------------------------------------------------------------------
'Moteur de conversion
tr = ms(UBound(ms) - x)
cent = "": d = "": u = "": z1 = t(p): z = t(p)
If z >= 100 Then cent = IIf(Left(z, 1) > 1, Ul(Left(z, 1)) & " cent", "cent")
If z Mod 100 = 0 And z > 100 And tr <> " mille" Then cent = cent & "s" Else cent = cent & " "

et voilà terminé l'erreur est corrigé
;)