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