Tipp 11.1 - Kreditzinsen berechnen
Wie kann ich die Zinsen für einen aufzunehmenden Kredit ausrechnen?
In Excel gibt es die wunderschöne Funktion RMZ die o.g. schnell für Sie erledigt. In VBA findet Sie ein Pendant zur RMZ Funktion, die finanzmathematische Funktion Ipmt. Dieser Funktion können Sie folgende Parameter mitgeben:
- rate: Den Zinssatz pro Zeitraum
- per: einen konkreten Zahlungszeitraum
- nper: Die Gesamtanzahl der Zahlungsräume
- pv: Die Kreditsumme
- fv: Endstand des Kredits (optional, standardmäßig 0)
- type: Die Fälligkeit der Zahlung (optional standardmäßig 0 = Ende des Zahlungszeitraums bzw. 1 = Beginn des Zahlungszeitraumes).
Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Beispiel:
' Diverses Public Function CalcZinsen(ByVal pcKredit As Currency, _ ByVal pdZinssatz As Double, _ ByVal plRaten As Long, _ ByVal pbWann As meZahlung, _ Optional ByVal pcEndWert As Currency) _ As Currency '// ===================================================== '// Methode | Berechnet die Gesamtzinsen eines Kredites '// ----------------------------------------------------- '// Parameter | pcKredit Currency - Kreditbetrag ' pdZinssatz Double - jährl. Zinsatz ' plRaten Long - Anzahl. mtl. Raten ' pbWann meZahlung - siehe Enum ' pcEndWert pcEndWert - Endwer optional ' standm. 0 '// ----------------------------------------------------- '// Rückgabe | Currency - Gesamt Zinsen '// ----------------------------------------------------- '// Erstellt | Stefan Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- '// Beispielaufruf: '// BerechneZinsen '// ===================================================== Dim lCount As Long Dim cZinszahlung As Currency Dim cGesamtzinsen As Currency On Error GoTo CalcZinsen_Error pdZinssatz = pdZinssatz / 100 For lCount = 1 To plRaten cZinszahlung = IPmt(pdZinssatz / 12, lCount, _ plRaten, -pcKredit, -pcEndWert, pbWann) cGesamtzinsen = cGesamtzinsen + cZinszahlung Next lCount CalcZinsen = cGesamtzinsen CalcZinsen_Exit: On Error GoTo 0 Exit Function CalcZinsen_Error: MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modTipps.CalcZinsen" Resume CalcZinsen_Exit End Function
Beispielaufruf
Beispiel:
' Public Sub BerechneZinsen() Dim cKredit As Currency Dim dZins As Double Dim lRaten As Long Dim cZinsen As Currency On Error GoTo BerechneZinsen_Error ' Der Kreditbetrag cKredit = 10000 ' Der jährliche Zinsatz dZins = 8.5 ' Die monatlichen Ratenanzahl lRaten = 36 cZinsen = CalcZinsen(cKredit, dZins, lRaten, eMontasende, 100) Debug.Print "Für den Kredit: " & _ Format$(cKredit, "Currency") & _ " bezahlen Sie insgesamt " & _ Format$(cZinsen, "Currency") & " Zinsen!" Debug.Print "Die monatliche Rate beträgt: "; _ Format$((cZinsen + cKredit) / lRaten, _ "Currency") BerechneZinsen_Exit: On Error GoTo 0 Exit Sub BerechneZinsen_Error: MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modTipps.BerechneZinsen" Resume BerechneZinsen_Exit End Sub
Um die Gesamtsumme der Zinsen zu errechnen, müssen Sie die Funktion in einer Schleife für jeden einzelnen Zahlungszeitraum Ihres Kredites aufrufen. Unser Beispiel kapselt dieses Verhalten.