[VB] Transformer un montant chiffre ->>> lettre

Transformer un montant chiffre ->>> lettre [VB] - Programmation

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 !

Reply

Marsh Posté le 26-10-2001 à 14:55:56   

Reply

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 !  



Reply

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. :D

Reply

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

Reply

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

Reply

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+

Reply

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

Reply

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

Reply

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+

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed