Transformer un montant chiffre ->>> lettre [VB] - Programmation
Marsh Posté le 26-10-2001 à 15:36:20
VB d'origne ne le fais pas. 
j'avais trouver un algo, y a bien logntemps a l'epoque du GWBASIC 
. 
Regard si ca n'existe pas en active-x: sur www.active-x.com 
A+ 
 
| Chapi a écrit a écrit  : Voila, j'ai montant : "1000 F" par exemple et je voudrais le transformer en "Mille Francs"...... quelqu'un a une idée ? y a une fonction qui fait ça ? Merci d'avance ! | 
Marsh Posté le 26-10-2001 à 16:04:58
Faudrait diviser le nombre par 10, 100, 1000 (y a peut-être des macros qui le font), voir ce qui reste, avoir une série de chaînes "Mille", "cent", "quatrevingt", .. "dix", "neuf", "huit", etc.. et combiner.  
L'algo doit ressembler à la façon dont on décompose le nombre pour rédiger un chèque ! 
 
Quelqu'un l'a peut-être déja fait.  
 
Marsh Posté le 26-10-2001 à 16:09:13
Vi,c'est exactement cela que je voudrais. j'avais commencé un petit algo du genre il y a quelques temps pour montrer à une amie comment fonctionnait le service audiotel qui lui annonçait à voix haute son solde de compte. 
 
Mais je ne l'ai plus, et comme je suis feignant, j'aimerais bien le trouvé en version prémachée  
 
 
merci ! 
 
Chapi 
Marsh Posté le 26-10-2001 à 16:46:11
j'ai fais cette petite fonction : 
tu tape temp=ch(532) et temp contiendra "cinq cent trente deux" 
ça t'aidera peut etre (marche jusqu'a 999). 
 
 
Function ch(chi) 
Dim centaine(8), dizaine(8), unite(8) As String 
centaine(0) = "Cent " 
centaine(1) = "Deux Cent " 
centaine(2) = "Trois Cent " 
centaine(3) = "Quatre Cent" 
centaine(4) = "Cinq Cent " 
centaine(5) = "Six Cent " 
centaine(6) = "Sept Cent " 
centaine(7) = "Huit Cent " 
centaine(8) = "Neuf Cent " 
dizaine(0) = "Dix"  'P 
dizaine(1) = "Vingt" 
dizaine(2) = "Trente" 
dizaine(3) = "Quarante" 
dizaine(4) = "Cinquante" 
dizaine(5) = "Soixante" 
dizaine(6) = "Soixante" 'P 
dizaine(7) = "Quatre Vingt" 
dizaine(8) = "Quatre Vingt" 'P 
unite(0) = "Un" 
unite(1) = "Deux" 
unite(2) = "Trois" 
unite(3) = "Quatre" 
unite(4) = "Cinq" 
unite(5) = "Six" 
unite(6) = "Sept" 
unite(7) = "Huit" 
unite(8) = "Neuf" 
 
 
ce = Mid(chi, 1, 1) 
 
chaine = centaine(ce - 1) 
 
di = Mid(chi, 2, 1) 
Select Case di 
 
Case 0 
If Mid(chi, 3, 1) = 0 Then 
chaine = chaine 
Else 
chaine = chaine & " " & unite(Mid(chi, 3, 1) - 1) 
End If 
 
GoTo fini 
 
Case 1 
 
If Mid(chi, 3, 1) = 0 Then chaine = chaine & "Dix" 
If Mid(chi, 3, 1) = 1 Then chaine = chaine & "et Onze" 
If Mid(chi, 3, 1) = 2 Then chaine = chaine & "Douze" 
If Mid(chi, 3, 1) = 3 Then chaine = chaine & "Treize" 
If Mid(chi, 3, 1) = 4 Then chaine = chaine & "Quatorze" 
If Mid(chi, 3, 1) = 5 Then chaine = chaine & "Quinze" 
If Mid(chi, 3, 1) = 6 Then chaine = chaine & "Seize" 
If Mid(chi, 3, 1) = 7 Then chaine = chaine & "Dix Sept" 
If Mid(chi, 3, 1) = 8 Then chaine = chaine & "Dix Huit" 
If Mid(chi, 3, 1) = 9 Then chaine = chaine & "Dix Neuf" 
GoTo fini 
Case 2 
chaine = chaine & " " & dizaine(1) 
Case 3 
chaine = chaine & " " & dizaine(2) 
Case 4 
chaine = chaine & " " & dizaine(3) 
Case 5 
chaine = chaine & " " & dizaine(4) 
Case 6 
chaine = chaine & " " & dizaine(5) 
'MsgBox (chaine) 
Case 7 
If Mid(chi, 3, 1) = 0 Then chaine = chaine & "Soixante Dix" 
If Mid(chi, 3, 1) = 1 Then chaine = chaine & "Soixante et Onze" 
If Mid(chi, 3, 1) = 2 Then chaine = chaine & "Soixante Douze" 
If Mid(chi, 3, 1) = 3 Then chaine = chaine & "Soixante Treize" 
If Mid(chi, 3, 1) = 4 Then chaine = chaine & "Soixante Quatorze" 
If Mid(chi, 3, 1) = 5 Then chaine = chaine & "Soixante Quinze" 
If Mid(chi, 3, 1) = 6 Then chaine = chaine & "Soixante Seize" 
If Mid(chi, 3, 1) = 7 Then chaine = chaine & "Soixante Dix sept" 
If Mid(chi, 3, 1) = 8 Then chaine = chaine & "Soixante Dix huit" 
If Mid(chi, 3, 1) = 9 Then chaine = chaine & "Soixante Dix neuf" 
GoTo fini 
Case 8 
chaine = chaine & " " & dizaine(7) 
Case 9 
If Mid(chi, 3, 1) = 0 Then chaine = chaine & "Dix" 
If Mid(chi, 3, 1) = 1 Then chaine = chaine & "et Onze" 
If Mid(chi, 3, 1) = 2 Then chaine = chaine & "Douze" 
If Mid(chi, 3, 1) = 3 Then chaine = chaine & "Treize" 
If Mid(chi, 3, 1) = 4 Then chaine = chaine & "Quatorze" 
If Mid(chi, 3, 1) = 5 Then chaine = chaine & "Quinze" 
If Mid(chi, 3, 1) = 6 Then chaine = chaine & "Seize" 
If Mid(chi, 3, 1) = 7 Then chaine = chaine & "Dix sept" 
If Mid(chi, 3, 1) = 8 Then chaine = chaine & "Dix huit" 
If Mid(chi, 3, 1) = 9 Then chaine = chaine & "Dix neuf" 
GoTo fini 
End Select 
 
If Mid(chi, 3, 1) = 0 Then GoTo fini 
chaine = chaine & " " & unite(Mid(chi, 3, 1) - 1) 
 
 
fini: 
ch = chaine 
 
End Function 
Marsh Posté le 26-10-2001 à 16:53:50
Une petite recherche sur google et hop ! 
 
http://www.vbfrance.com/article.asp?Val=90 
 
A+ 
Marsh Posté le 26-10-2001 à 16:58:30
Merci beaucoup à tous. 
 
Bon, je vais voir si ce code a besoin d'être amélioré, et le cas echeant je rebalancerai une version améliorée dans ce poste s'il y en a d'intéressés. 
 
C'est cool de ne pas avoir à se faitiguer un vendredi soir  
 
 
Bon ouik ! 
 
CHapi 
Marsh Posté le 26-10-2001 à 17:00:07
| JPA a écrit a écrit  : Une petite recherche sur google et hop ! http://www.vbfrance.com/article.asp?Val=90 A+ | 
 
 
Comment as tu libelle ta recherche. STP 
Marsh Posté le 26-10-2001 à 17:30:24
recherche de : "transformer chiffre lettre basic" dans les pages francophones 
(je savais qu'il y avait des progrs en basic) 
J'avais ma première recherche sans basic et c'était n'importe quoi. 
 
A+ 
Marsh Posté le 26-10-2001 à 18:34:16
| JPA a écrit a écrit  : recherche de : "transformer chiffre lettre basic" dans les pages francophones (je savais qu'il y avait des progrs en basic) J'avais ma première recherche sans basic et c'était n'importe quoi. A+ | 
 
 
OK merci 
Marsh Posté le 26-10-2001 à 14:55:56
Voila, j'ai montant : "1000 F" par exemple et je voudrais le transformer en "Mille Francs"...... quelqu'un a une idée ? y a une fonction qui fait ça ?
Merci d'avance !