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
| Sub simulateur_credit()
'------------------------------------------------------------------------------'
'Ceci est un simulateur de crédit à taux d'intérêts constants et niveau de
'remboursements constants
'Ce code est écrit en Langage VBA - compatible Excel
'------------------------------------------------------------------------------'
'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 dus à la banque sur chaque période, en euros.
'Le tableaux a() contiendra le capital amorti/remboursé sur chaque période, en euros.
Dim a(), i(), c(), mensualite, txm, capital, txassurances, totalintetass, coutassurances As Double
Dim assurances As Byte
Dim n, xx As Integer
'saisie des données : capital emprunté, durée et taux
'Capital emprunté (en Euros)
capital = CDbl(InputBox("AVERTISSEMENT : Ceci est un simulateur de crédit à taux d'intérêts et remboursements constants - avec un paiement en fin de période" & Chr(10) & Chr(10) _
& "4 ou 5 questions vont se succéder" & Chr(10) & Chr(10) _
& "1. Combien voulez-vous emprunter en Euros ?", "Simulateur financier 1/5"))
'Nombre de périodes (en mois)
n = CDbl(InputBox("2. Durée du prêt (en mois) ? ", "Simulateur financier 2/5"))
'Taux fixe d'emprunt (en %)
txm = CDbl(InputBox("3. Quel est le taux d'intérêt annuel en pourcentage ?", "Simulateur financier 3/5"))
If txm = 0 Then txm = 0.0000001
txm = txm / 100 / 12
assurances = CDbl(MsgBox("4. Le prêt est-il assuré ?", vbYesNo, "Simulateur financier 4/5"))
Select Case assurances
Case vbYes
'Taux fixe de l'assurance du prêt (%)
txassurances = CDbl(InputBox("5. Quel est le taux de prime d'assurances en pourcentage ? (sur capital initial et avec une couverture à 100 % sur une tête) "))
txassurances = txassurances / 100 / 12
coutassurances = capital * txassurances
Case vbNo
coutassurances = 0
End Select
ReDim a(1), i(1), c(1)
'Amortissement le 1er mois
a(0) = capital * txm / ((1 + txm) ^ n - 1)
'Intérêt 1er mois
i(0) = capital * txm
'somme prélevée mensuelle
mensualite = i(0) + a(0)
'Début de la boucle du tableau d'amortissement
c(0) = capital
totalint = i(0)
For xx = 1 To n
ReDim Preserve a(xx), i(xx), c(xx)
c(xx) = c(xx - 1) - a(xx - 1)
i(xx) = c(xx) * txm
a(xx) = pr - i(xx)
totalintetass = totalintetass + i(xx)
Next xx
'Affichage des résultats
MsgBox "Echéance mensuelle = " & Format(mensualite + coutassurances, "###,###,##0.00 ") & Chr(10) _
& "Cout de l'assurances sur la durée = " & Format(coutassurances * n, "###,###,##0.00 ") & Chr(10) _
& "Coût total du crédit, en intérêts et assurances le cas échéant = " & Format(totalintetass + coutassurances, "###,###,##0.00 "), vbQuestion, "Simulateur financier 5/5"
End Sub |
Partager