Échéancier de crédit

Description

Mon premier prog, il permet de calculer toutes les échéances d'un crédit . Mais j'ai un problème avec les décimales. SVP si vous avez des motifs je suis preneur, car c'est un devoir pour l'école.

Source / Exemple :


Dim a, c, d, e, f, g, h, h2, j, S, Am, r, v As String
Dim b As Single

Private Sub Command1_Click()
End
End Sub
Private Sub eff_Click()
RT = ""               'procédure d'éffacement du tableau d'échéancier
MPT = ""
TEGT = ""
MMRT = ""
DTmois = ""
DTan = ""
CTCT = ""
End Sub
            'MSG d'accueille
            
Private Sub Form_Load()
MsgBox "Entez vos données"
End Sub

Private Sub c1_Click()
MPT = Val(Format(MPT, "0")) 'retire les saisies de caractère
TEGT = Val(TEGT)            'retire le % pour permette les verif'
TEGT = Format(TEGT, "00.00")
mmrp = Val(Format(mmrp, "0"))

            'vérification de la cohérence des données
If MPT < 0 Or TEGT < 0 Or MMRT < 0 Then
    MsgBox "Attention les données ne doivent pas êtres négatifs"
            'vérification d'absence de valeur
    ElseIf MPT = "" Or TEGT = "" Or MMRT = "" Then
    MsgBox "il manque une ou plusieurs valeurs de saisie"
        ElseIf TEGT > 100 Then
        MsgBox "Attention les données du taux d'intéret sont incoérentes"
        MPT = 0
        TEGT = 0
        MMRT = 0
End If

        'désignation des valeurs dans les variables
a = Val(MPT)
b = Val(TEGT)
c = Val(MMRT)
TEGT = Format(b / 100, "00.00%")       'mettre la valeur du taux en %

                'calcul de la durée du crédit (NB de rang)
            'durée en année et msg d'érreure
If a > 0 Or b > 0 Or c > 0 Then     'boucle antibug pour évité de lancer
                                    'le calcul si les valeurs sont égals à zéro
e = 0
S = a
Do
x = ((c) - (S * (b / 100) / 12))
S = S - x
e = e + 1
    If e > 50 * 12 Then            'pour évité d'avoir une valeure tros important
    MsgBox "Attention la durée du crédit est tros longue veuillez augmenter vos mensualitées"
    a = 0
    b = 0
    c = 0
    S = -1
    e = 0
    End If
Loop Until S <= 0
    
    
DTmois = Format(e, "0 mois")
            'durée en mois
    f = e / 12
    DTan = Format(f, "0.00années")

            'lecture des donnéées
    h = 0
    S = a
    r = 0
    
    Do              'Boucle de calcul(répèter jusqu'a)
            r = r + 1               'Num du rang
            v = (S * b / 100) / 12      'Calcul des intérêts en mois
            h = v + h               'variable de calcule de la somme des intérets
            Am = c - v              'Calcul de l'amortissement
            S = S - Am              'Calcul du solde
    
            RT = RT & Format(r, "000") & "   /  " & c & "€   /  " & _
            Format(v, "00.00€") & "   /  " & Format(Am, "00.00€") & "   /  " _
            & Format(S, "00.00€") & vbCrLf
        
    Loop Until r >= e - 1
           
                'dernierre ligne de calcul pour une mensualité du solde exacte
             r = e
            RT = RT & Format(r, "000") & "   /  " & Format(S + S * b / 1200, "000€") _
            & "   /  " & Format(S * b / 1200, "00.00€") _
            & "   /  " & Format(S, "00.00€") & "   /  " & Format(0, "00.00€") & vbCrLf
            h2 = S * b / 1200
            
            'calcul du coût total du crédit
    g = h + a + h2
    CTCT = Format(g, "0.00€")
   
End If

End Sub

Private Sub RT_Change()          'affichage automatique de la dernière
RT.SelStart = Len(RT)            'ligne ajoutée a la zone de texte
End Sub

Codes Sources

A voir également