Option Explicit
Sub zinsberechnung()
' Programm berechnet die monatliche Belastung
' bei einzugebendem Kaufpreis und Eigenkapital
' Dateiname: funktionen12
Dim eingabe As String
Dim eigenkapital As Double
Dim immobilienpreis As Double
Dim aufzunehmenderBetrag As Double
Dim monatlicheBelastung As Double
Dim zinsKlasse As Integer
Dim fehler As Boolean
MsgBox ("Bitte geben Sie Ihr Eigenkapital und den " _
& Chr$(13) & "Kaufpreis ein, sowie die Ihnen zugeteilte" _
& Chr$(13) & " Zinsklasse ein! Sie beenden das Programm," _
& Chr$(13) & " indem Sie beenden als Kaufpreis angeben")
eingabe = InputBox("Geben Sie jetzt den Kaufpreis ein!")
Do While eingabe <> "beenden"
Lies_restliche_und_ueberpruefe_alle_Benutzereingaben eingabe, _
immobilienpreis, _
eigenkapital, _
zinsKlasse, _
fehler
If fehler Then
Exit Sub
End If
fuehre_Berechnungen_durch eigenkapital, immobilienpreis, _
zinsKlasse, monatlicheBelastung, fehler
If fehler Then
Exit Sub
End If
' Gib Ergebnisse aus
MsgBox ("Ihre monatliche Belastung ist: " & monatlicheBelastung & " DM")
eingabe = InputBox("Geben Sie jetzt den Kaufpreis ein!")
Loop
End Sub
Function berechne_Eigenkapitalquote(ByVal eigenkapital As Double, _
ByVal immobilienpreis As Double) _
As Boolean
Dim eigenkapitalquote As Double
berechne_Eigenkapitalquote = False
eigenkapitalquote = (eigenkapital / immobilienpreis) * 100
If eigenkapitalquote < 30 Then
MsgBox ("Ihre Eigenkapitalquote " & eigenkapitalquote & _
"% ist zu niedrig!")
berechne_Eigenkapitalquote = True
Exit Function
End If
End Function
Function Monatliche_Belastung_berechnen(ByVal immobilienpreis As Double, _
ByVal eigenkapital As Double, _
ByVal zinsKlasse As Integer) _
As Double
Const tilgung As Double = 1
Dim aufzunehmenderBetrag As Double
Dim jahresBelastung As Double
Dim eigenkapitalquote As Double
aufzunehmenderBetrag = immobilienpreis - eigenkapital
jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse + tilgung)
Monatliche_Belastung_berechnen = jahresBelastung / 12
End Function
Sub Lies_restliche_und_ueberpruefe_alle_Benutzereingaben(ByVal eingabe As String, _
immobilienpreis As Double, _
eigenkapital As Double, _
zinsKlasse As Integer, _
fehler As Boolean)
fehler = False
wandle_in_Double_um eingabe, immobilienpreis, fehler
If (fehler) Then
Exit Sub
End If
eingabe = InputBox("Geben Sie nun ihr Eigenkapital ein!")
wandle_in_Double_um eingabe, eigenkapital, fehler
If (fehler) Then
Exit Sub
End If
eingabe = InputBox("Geben Sie nun ihre Zinsklasse ein!")
wandle_in_Integer_um eingabe, zinsKlasse, fehler
If (fehler) Then
Exit Sub
End If
End Sub
Sub wandle_in_Double_um(ByVal eingabe As String, rueckgabe As Double, _
fehler As Boolean)
fehler = False
If Not IsNumeric(eingabe) Then
MsgBox ("Der von Ihnen eingegebene Wert muß eine Zahl sein!")
fehler = True
Exit Sub
End If
rueckgabe = CDbl(eingabe)
End Sub
Sub wandle_in_Integer_um(ByVal eingabe As String, rueckgabe As Integer, _
fehler As Boolean)
fehler = False
If Not IsNumeric(eingabe) Then
MsgBox ("Der von Ihnen eingegebene Wert muß eine Zahl sein!")
fehler = True
Exit Sub
End If
rueckgabe = CInt(eingabe)
End Sub
Sub fuehre_Berechnungen_durch(ByVal eigenkapital As Double, _
ByVal immobilienpreis As Double, _
ByVal zinsKlasse As Integer, _
monatlicheBelastung As Double, _
fehler As Boolean)
Const zinsKlasse1 As Double = 5.5
Const zinsKlasse2 As Double = 5.3
Const zinsKlasse3 As Double = 5.2
Const zinsKlasse4 As Double = 5#
Const zinsKlasse5 As Double = 4.5
fehler = False
fehler = berechne_Eigenkapitalquote(eigenkapital, _
immobilienpreis, fehler)
If fehler Then
Exit Sub
End If
Select Case zinsKlasse
Case 1
monatlicheBelastung = Monatliche_Belastung_berechnen( _
immobilienpreis, eigenkapital, zinsKlasse1)
Case 2
monatlicheBelastung = Monatliche_Belastung_berechnen( _
immobilienpreis, eigenkapital, zinsKlasse2)
Case 3
monatlicheBelastung = Monatliche_Belastung_berechnen( _
immobilienpreis, eigenkapital, zinsKlasse3)
Case 4
monatlicheBelastung = Monatliche_Belastung_berechnen( _
immobilienpreis, eigenkapital, zinsKlasse4)
Case 5
monatlicheBelastung = Monatliche_Belastung_berechnen( _
immobilienpreis, eigenkapital, zinsKlasse5)
Case Else
MsgBox ("Sie haben eine falsche Zinsklasse eingegeben! " & _
"Zinsklasse muß kleiner gleich 5 sein!")
fehler = True
Exit Sub
End Select
End Sub