Option Explicit
Sub zinsberechnung()
' Programm berechnet die monatliche Belastung
' bei einzugebendem Kaufpreis und Eigenkapital
' Dateiname: funktionen11
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
Gib_Programmbeschreibung_aus
eingabe = Lies_den_Immobilienpreis_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 = Lies_den_Immobilienpreis_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 Gib_Programmbeschreibung_aus()
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")
End Sub
Function Lies_den_Immobilienpreis_ein() As String
Lies_den_Immobilienpreis_ein = InputBox("Geben Sie jetzt den Kaufpreis ein!")
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
If Not IsNumeric(eingabe) Then
MsgBox ("Kaufpreis muß eine Zahl sein!")
fehler = True
Exit Sub
End If
immobilienpreis = CDbl(eingabe)
eingabe = InputBox("Geben Sie nun ihr Eigenkapital ein!")
If Not IsNumeric(eingabe) Then
MsgBox ("Eigenkapital muß eine Zahl sein!")
fehler = True
Exit Sub
End If
eigenkapital = CDbl(eingabe)
eingabe = InputBox("Geben Sie nun ihre Zinsklasse ein!")
If Not IsNumeric(eingabe) Then
MsgBox ("Zinsklasse muß eine Zahl sein!")
fehler = True
Exit Sub
End If
zinsKlasse = 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