Option Explicit
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

Sub Lies_den_Immobilienpreis_ein(immobilienPreis As String)
    immobilienPreis = InputBox("Geben Sie jetzt den Kaufpreis ein!")
End Sub

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
    
Const tilgung As Double = 1
    
Dim aufzunehmenderBetrag As Double
    
Dim jahresBelastung As Double
    
Dim eigenkapitalquote As Double
    fehler = 
False
    
' berechne Eigenkapitalquote
    eigenkapitalquote = (eigenkapital / immobilienPreis) * 100
    
If eigenkapitalquote < 30 Then
        MsgBox ("Ihre Eigenkapitalquote " & eigenkapitalquote & _
                "% ist zu niedrig!")
        fehler = 
True
        
Exit Sub
    
Else
        
Select Case zinsKlasse
            
Case 1
                
'Monatliche Belastung berechnen
                aufzunehmenderBetrag = immobilienPreis - eigenkapital
                jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse1 + tilgung)
                monatlicheBelastung = jahresBelastung / 12
            
Case 2
                
'Monatliche Belastung berechnen
                aufzunehmenderBetrag = immobilienPreis - eigenkapital
                jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse2 + tilgung)
                monatlicheBelastung = jahresBelastung / 12
            
Case 3
                
'Monatliche Belastung berechnen
                aufzunehmenderBetrag = immobilienPreis - eigenkapital
                jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse3 + tilgung)
                monatlicheBelastung = jahresBelastung / 12
            
Case 4
                
'Monatliche Belastung berechnen
                aufzunehmenderBetrag = immobilienPreis - eigenkapital
                jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse4 + tilgung)
                monatlicheBelastung = jahresBelastung / 12
            
Case 5
                
'Monatliche Belastung berechnen
                aufzunehmenderBetrag = immobilienPreis - eigenkapital
                jahresBelastung = (aufzunehmenderBetrag / 100) * (zinsKlasse5 + tilgung)
                monatlicheBelastung = jahresBelastung / 12
            
Case Else
                MsgBox ("Sie haben eine falsche Zinsklasse" & _
                        " eingegeben! Zinsklasse muß" & _
                        " kleiner gleich 5 sein!")
                fehler = 
True
                
Exit Sub
        
End Select
    
End If
End Sub

Sub zinsberechnung()
    
' Programm berechnet die monatliche Belastung
    ' bei einzugebendem Kaufpreis und Eigenkapital
    ' Dateiname: funktionen7
    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
    Lies_den_Immobilienpreis_ein eingabe
    
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")
        Lies_den_Immobilienpreis_ein eingabe
    
Loop
End Sub