Convertir un nombre en lettre

microsophitic Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
microsophitic Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'utilise la fonction et j'ai trouvé deux erreurs de conversion que je n'arrive pas à résoudre;

La fonction convertit mal les nombres suivants :
80 000 000 ou 80 000 000 000 => quatre-vingt Millions (ou Milliards) d'Euros au lieu de quatre-vingts Millions (ou Milliards) d'Euros
200 000 000 ou 200 000 000 000 => deux cent Millions (ou Milliards) d'Euros au lieu de deux cents Millions (ou Milliards) d'Euros

Merci de l'aide apportée.
Gérard
A voir également:

4 réponses

mcfly10 Messages postés 1052 Date d'inscription   Statut Membre Dernière intervention   239
 
Un Replace(Replace(... ; "vingts M"; "vingt M") ; "cents M"; "cent M") ne suffirait pas ?
1
microsophitic Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour et merci pour la réponse, mais cela ne répond pas à mon problème ... la fonction dont je parle est accessible ici:
https://www.commentcamarche.net/faq/11100-vb6-net-vba-transformer-chiffres-en-lettre
et je l'ai utilisée avec access 2007 pour m'en servir dans une procédure de gestion des clients et j'utilise cette fonction pour un reçu ou une facture, par exemple 200 euros (deux cents euros).
Cette fonction marche très bien sauf les fautes d'orthographe citées. Les accords avec vingt et cent sont spéciaux mais j'imagine qu'il est possible de corriger ces fautes; j'ai pu corriger une faute avec vingt mais là je sèche... de plus il y a un souci avec les décimales mais là je verrai après.
Merci encore de l'aide apportée.
Gérard
1
mcfly10 Messages postés 1052 Date d'inscription   Statut Membre Dernière intervention   239
 
Je ne m'y connais pas trop en VB, mais je vais tenter.

If e(1) = 1 Then
strBuff = "cent " & strBuff
ElseIf e(1) >= 1 Then 'pluriel
If strBuff = "" Then 'avec rien derrière
strBuff = Unite(e(1)) & "cents "
Else 'avec quelque chose derrière
strBuff = Unite(e(1)) & "cent " & strBuff
End If
End If


Peut-être devrais-tu déplacer ton message dans le forum programmation.
1
microsophitic Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour et merci encore pour la réponse ... malheureusement ça ne marche pas; j'essaie d'ajouter "millions" ou "milliards" ici et là sans trop savoir où pour faire en sorte que "deux cents millions" par exemple fasse que cent ait bien son "s" ... puisque la règle veut que pour "deux cent mille" cent n'a pas de "s" justement d'où la difficulté.
Cordialement
1