1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| Sub CommandButton1_Click()
'Aquisition des informations
Dim ca As Integer, n As Integer, tx As Integer
ca = Val(TextBox1) 'Capital emprunté (Euros)
n = Val(TextBox2) 'Nombre de périodes (en mois)
tx = Val(TextBox3) 'Taux fixe d'emprunt (%)
If tx = 0 Then tx = 0.0000001
txm = tx / 100 / 12
'Amortissement le 1er mois
a(1) = ca * txm / ((1 + txm) ^ n - 1)
'Intérêt 1er mois
i(1) = ca * txm
'somme prélevée mensuelle
pr = i(1) + a(1)
'Début de la boucle du tableau d'amortissement
'Le tableaux c() contiendra le capital restant dû période après période (mois après mois) en euros.
'Le tableaux i() contiendra les intérets filés à la banque sur chaque période, en euros
'Le tableaux a() contiendra le capital remboursé sur chaque période, en euros.
c(1) = ca
totalint = 0
For xx = 2 To n
c(xx) = c(xx - 1) - a(xx - 1)
i(xx) = c(xx) * txm
a(xx) = pr - i(xx)
totalint = totalint + i(xx)
Next xx
derr = a(n) - c(n)
a(n) = c(n)
i(n) = i(n) + derr
If tx = 0.000001 Then
i(1) = 0
For xx = 2 To n
a(xx) = c(1) / n
i(xx) = 0
c(xx) = c(xx - 1) - a(xx)
Next xx
totalint = 0
derr = 0
a(n) = c(n)
End If
totalint = totalint + i(1) + derr
'Affichage du résultat
Label6 = Int(totalint * 100 + 0.5) / 100 'Total des intérets
'Création de deux OptionBox : Option1 et Option2
'On ne testera que Option1 qui cochée permet d'indiquer au programme
'le prix de l'assurance par période (Euros/mois) si l'on coche Option1
'le prix de l'assurance en % du capital si l'on coche l'Option2
If OptionButton1.Value = True Then
TextBox5 = Int((Val(TextBox4) * 100 / Val(TextBox1)) * 100) / 100
'On a donné le prix de l'assurance par période
'Affichage pour information en % du capital
Else
TextBox4 = Int((Val(TextBox5) / 100 * Val(TextBox1)) * 100) / 100
'On a donné le prix de l'assurance en % du capital
'Affichage pour informationpar de ce prix par période
End If
'Affichage des résultats
Label10 = Val(TextBox4) * Val(TextBox2) 'Assurance totale à payer
Label13 = Int((pr + Val(TextBox4)) * 100 + 0.5) / 100 'Echéance mensuelle
Label15 = Val(Label10) + Val(Label6) 'Cout total du crédit, assurance et intérets compris.
End Sub |
Partager