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 !