Conversion chiffres-lettres

Fermé
aminesnake - 16 avril 2005 à 15:00
 hamid-oran31 - 5 juil. 2008 à 08:20
Salut ! je viens de commencer la programmation sous turbo pascal et je cherche un programme qui fait la conversion des nombres en lettres !
par exemple : pour 25 647,74 € on aura:
Vingt cinq mille six cent quarante sept euros et soixante quatorze
centimes.

Merci d'avance !
A voir également:

2 réponses

c'ess un password de forum je voulais comment savoir decoder pour qu'il sera en lettres
1
bjr cher frer pour convertir les chiffres en lettre u devras utiliser un certin module ou le créer sou exel sa marche j'en ai eu besoin et je lais fabriquer e pour te faciliter la tache je te le donne en ecrits tu va dans affichage tu click sur barres d'outille ensuite boite a outille controlle tu click sur mode creation ensuite visualiser le code et la tu trouve "créer un projet et tu colle ce ke je vais ecrire en dessous ps sans les tirets que g mis en premier c juste pour separer le module et ce texte
----------------------------------------------------------------------------------------------------------------------------------------------------------------

Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet, résultat
'
'varnum : pour stocker les parties du nombre que l'on va découper
'varlet : pour stocker la conversion en lettres d'une partie du nombre
'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
'résultat : pour stocker les résultats intermédiaires des différentes étapes
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
Static dizaine(1 To 8) '*** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
dizaine(8) = "quatre-vingt"
'
'*** Traitement du cas zéro franc
If nb >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If
'*** Traitement des millions
varnum = Int(nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " million"
If varlet <> "un" Then résultat = résultat + "s"
End If
'
'*** Traitement des milliers
varnum = Int(nb) Mod 1000000
varnum = Int(varnum / 1000)
If varnum > 0 Then
GoSub centaine_dizaine
If varlet <> "un" Then résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
varnum = Int(nb) Mod 1000
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et du "de" pour million
Select Case varlet
Case "cent", "ingt"
résultat = résultat + "s"
Case "lion", "ions"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour le cas "zéro franc"
'
'*** Indication du terme franc
résultat = résultat + " Dinar"
If nb >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
varnum = Int((nb - Int(nb)) * 100 + 0.5) '*** On additionne 0,5
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) - 1)
'
'*** renvoie du résultat de la fonction et fin de la fonction
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de conversion en lettres
'*** des centaines et dizaines
varlet = ""
'
'*** Traitement des centaines
If varnum >= 100 Then
varlet = chiffre(Int(varnum / 100))
varnum = varnum Mod 100
If varlet = "un" Then
varlet = "cent "
Else
varlet = varlet + " cent "
End If
End If
'
'*** Traitement des dizaines
If varnum <= 19 Then '*** Cas où la dizaine est <20
If varnum > 0 Then varlet = varlet + chiffre(varnum)
Else '*** Autres cas
varnumD = Int(varnum / 10) '*** chiffre des dizaines
varnumU = varnum Mod 10 '*** chiffre des unités
Select Case varnumD '*** génération des dizaines en lettres
Case Is <= 5
varlet = varlet + dizaine(varnumD)
Case 6, 7
varlet = varlet + dizaine(6)
Case 8, 9
varlet = varlet + dizaine(8)
End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
varlet = varlet + "-"
End If
End If
'*** génération des unités
If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function

---------------------------------------------------------------------------------------------------------------------------------------------------------------
ensuite tu va dans debogage et tu enregistre et ferme et c'est une fonction ki se fait appeler donc pour l'appeler tu fait sa :selectione la case ou tu va mettre le montant en lettre (ABC...) click sur Fx elle se trouve en haut pres de l'espace ou tu corrige le text sur exel une fenetre s'ouvre tu choisis dans les dernier utilises la foncion personaliser ensuite tu la trouveras sur euro convert tu la mets sur Nbenlettre et la sa te sort un tite fenetre qui sappele argument de la fonction Nb tu selectionne la case ou ilya le montant en chiffres (123...) et voila comme par magie sa s'afiche et tu peut garder les case pour les utiliser une autre fois parceque quand tu change les chiffre le montant en lettre se change automatiquement

voila j'esper t'avoir bien aider et surtout bien guider lol pour plus d'explication : kurt-cob83@hotmail.com
0