CONVERSION DES CHIFFRES VERS LES LETTRES

malcom78 Messages postés 29 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 31 mai 2003 - 15 nov. 2002 à 12:47
malcom78 Messages postés 29 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 31 mai 2003 - 18 nov. 2002 à 19:53
Bonjour à tous,

J'essaye de convertir des chiffres en lettres dans une table access.
Alors dans une table, j'ai une colonne ou il y a des chiffres et dans une autre colonne je voudrais la conversion de ces chiffres en lettres

ex: 45 ---> quarante cinq
75 ---> soixante quinze etc ...

J'ai pensé aux objets
"
left("string",1)
mid("string",1,1)
"

Mais bon je rencontre encore des problèmes car si j'ai un grand chiffre par exemple:
14576
Je n'arrive pas a dire que le 1 doit ê traduit par mille et ainsi de suite.

Donc si vous voyez une solution pour mon problème merci de me tenir au courant .
Merci
Malcom78

3 réponses

ElDoktor Messages postés 22 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 7 décembre 2002
15 nov. 2002 à 13:27
A mon avis faut que tu decompose ton nombre en partie de 3 pour l'explicité en centaine et tu rajoute mille million milliard etc... selon la longueur de la chaine. Un petit exemple a complete...

a$ = "15445"
Do Until a$ = ""
Select Case Int((Len(a$) - 1) / 3)
Case 0: ext$ = ""
Case 1: ext$ = "mille "
Case 2: ext$ = "million "
Case 3: ext$ = "milliard "
End Select
k = Len(a$) Mod 3If k 0 Then k 3
b$ = Left$(a$, k)
For i = 1 To k
b1$ = Mid$(b$, i, 1)
If (k - i + 1) <> 2 Then
Select Case b1$
Case "1": Result$ = Result$ + "Un "
Case "2": Result$ = Result$ + "Deux "
Case "3": Result$ = Result$ + "Trois "
Case "4": Result$ = Result$ + "Quatre "
Case "5": Result$ = Result$ + "Cinq "
Case "6": Result$ = Result$ + "Six "
End Select
Else
Select Case b1$
Case "1": Result$ = Result$ + "dix "
Case "2": Result$ = Result$ + "vingt "
Case "3": Result$ = Result$ + "trente "
Case "4": Result$ = Result$ + "Quarate "
Case "5": Result$ = Result$ + "Cinquante "
Case "6": Result$ = Result$ + "Soixante "
End Select
End If If k 3 And i 1 Then Result$ = Result$ + "cent "
Next i
Result$ = Result$ + ext$
a$ = Right$(a$, Len(a$) - k)
Loop
MsgBox Result$

Voila j'espere que ca t'aidera, le code est un peu brute et bourrin mais bon....

-Dok
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 26
15 nov. 2002 à 14:40
Bonjour,

Utilises le moteur de recherche du Forum avec "chiffres". Tu devrais solutionner ton problème. De mémo, cette question a été posée la semaine dernière (ou 15 jrs).

Bon courage.
0
malcom78 Messages postés 29 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 31 mai 2003
18 nov. 2002 à 19:53
ok merci beaucoup je pense que cela va m'aider, je vais essayer de commencer comme ca.
Mais bon je rencontre déjà pas mal de blem lorsque j'utilise les fonctions left et mid.
Lorsque par exemple dans la cellule j'ai un nombre et que j'utilise la fonction left. Puis je veux afficher le résultat de left et il ne m'affiche rien.

Malcom78
0
Rejoignez-nous