Convertir les chiffres en lettre

Description

Bonjour,
Mon code sert à convertir les chiffres en lettre.
J?ai prix le montant d?une facture par exemple, mettre ce code dans votre module
Et l?appeler a chaque fois.
Dans mon cas j?ai traité ma monnaie c?est le dinars mais
Chacun changera ce qu?il voudra
Bon courage

Source / Exemple :


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        If KeyCode = 13 Then
           If Shift = 0 Then
              KeyCode = 0
              SendKeys "{TAB}"
           Else
              KeyCode = 0
              SendKeys "+{TAB}"
           End If
        End If
End Sub

Private Sub Form_Load()
        Me.KeyPreview = True
End Sub

Private Sub calcul_Click()
       Dim affiche
       affiche = Text1.Text
       Dim i, j, k, point As Integer
       Dim parts As Variant
       Dim part, chaine, unite, centaine, dizaine, centimes As String
       Dim lettres As Variant
       Dim unites As Variant
       Dim dizaines As Variant
       Dim centaines As Variant
       point = InStr(1, Text1, ".")
       If point > 0 Then
          Text1 = Text1 + "0"
          centimes = Mid(Text1, point + 1, 2)
          Text1 = Mid(Text1, 1, point - 1)
          i = point - 1
       Else
          centimes = ""
          i = Len(Text1)
       End If
       If i Mod 3 > 0 Then
          k = Int(i / 3) + 1
       Else
          k = Int(i / 3)
       End If
       j = k * 3
       If i < j Then
          Text1 = Space(j - i) + Text1
       End If
       i = Len(Text1)
       ReDim parts(k)
       lettres = Array("", "", "mille", "million", "milliard", "billion")
       unites = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", "dix huit", "dix neuf")
       dizaines = Array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante dix", "quatre vingt", "quatre vingt dix")
       centaines = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")
       For j = 1 To k  ' k=nombre de groupes de 3 chiffres
           parts(j) = Mid(Text1, i - 3 * j + 1, 3)
       Next j
       chaine = ""
       For j = 1 To k ' traitement des parties
           part = parts(j)
           unite = Mid(part, 3, 1)
           dizaine = Mid(part, 2, 1)
           centaine = Mid(part, 1, 1)
           If dizaine = "1" Or dizaine = "7" Or dizaine = "9" Then
              dizaine = Str(Val(dizaine) - 1)
              unite = Str(Val(unite) + 10)
           End If
           chaine = centaines(Val(centaine)) + " " + dizaines(Val(dizaine)) + " " + unites(Val(unite))
           parts(j) = chaine
       Next j
       chaine = ""
       ' traitement des centimes
       If Len(centimes) > 0 Then
          For j = 1 To 2
              chaine = ""
              unite = Mid(centimes, 2, 1)
              dizaine = Mid(centimes, 1, 1)
              If dizaine = "1" Or dizaine = "7" Or dizaine = "9" Then
                 dizaine = Str(Val(dizaine) - 1)
                 unite = Str(Val(unite) + 10)
              End If
              chaine = " et " + StrConv(dizaines(Val(dizaine)) + " " + unites(Val(unite)) + " Cts", vbProperCase)
          Next
       End If
       For j = k To 1 Step -1
           If LTrim(RTrim(parts(j))) <> "" Then
              part = parts(j)
              If j = 2 And LTrim(RTrim(part)) = "un" Then part = ""
                 somlet = somlet + " " + StrConv(part + " " + lettres(j), vbProperCase)
              End If
       Next j
       somlet = somlet + "Dinars" + chaine
       Text1.Text = affiche ' Pour maintenir l'affichage bon
       Label2.Caption = somlet
End Sub

Conclusion :


Ne pas oublie que la separation avec les centimes c'est le point non pas la virgule
exemple :
5263.63 non pas 5263,63

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.