Conversion chiffres-lettres

aminesnake -  
 hamid-oran31 -
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 !

2 réponses

  1. gmbm
     
    c'ess un password de forum je voulais comment savoir decoder pour qu'il sera en lettres
    1
  2. hamid-oran31
     
    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