Re,
Dans ma macro, la partie décimale est gérée ici :
/début code
vIntermediaire=mid(vtravail,vpositionvirgule+1,vposition)
IF len(vIntermediaire<vposition) then
do while len(vIntermediaire)<vposition
vIntermediaire=vIntermediaire+"0"
loop
END IF
vdecimale=cint(vIntermediaire)
/fin code
vposition est la variable transmise à la macro indiquant le nb de
décimale que l'on souhaite garder pour la conversion en lettre,
vtravail est la "conversion alphanumérique" du nombre à écrire en toute
lettre
avec la boucle while je complète éventuellement avec des zéros pour
obtenir le nb de décimales souhaité.
Je ne dépend absolument pas du formatage appliqué à la cellule.
Salutations.
christianwtd a écrit :
Fernand COSTA a écrit :
Re,
Ci dessous un extrait du code :
Je récupère les différents paramètres, je vérifie leur validité et
différents détails (taille, signe etc ...) puis je convertis le
nombre en alpha grâce à la fonction *cstr()*.
J'extrais ensuite mes groupes de chiffre avec la fonction *mid()*
puis les retransforme en nombre avec la fonction *cint()* pour
continuer ma moulinette.
Tu peux récupérer la macro entière ici
<http://www.crafe.com/telechargement/NombreEcritEnLettre.ods>
.
Salutations.
Fernand COSTA
J'ai voulu répondre via Gmane, mais apparement ça coince, je reprend
donc:
OK, globalement j'ai suivi un chemin identique, mais je butte sur un
point précis. J'ai l'impression que tu as eu le même PB en regardant
ta feuille de conversion.
Si la cellule n'est pas formatée avec x décimales, c'est le formatage
par défaut qui est appliqué. Donc je ne connais pas la méthode pour
récupérer les décimales réelles, tout en tenant compte de ce problème
de décimales bizarres dans les grands nombres.
Merci de t'intéresser à mon problème (qui a aussi été le tien)
Bon surf,
Christian