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 zinsberechnung()
    
' Programm berechnet die monatliche Belastung
    ' bei einzugebendem Kaufpreis und Eigenkapital
    ' Dateiname: funktionen5
    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 eingabe As String
    
Dim eigenKapital As Double
    
Dim immobilienPreis As Double
    
Dim aufzunehmenderBetrag As Double
    
Dim eigenkapitalquote As Double
    
Dim jahresBelastung 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
            
' führe Berechnungen durch
            ' berechne Eigenkapitalquote
            eigenkapitalquote = (eigenKapital / immobilienPreis) * 100
            
If eigenkapitalquote < 30 Then
                MsgBox ("Ihre Eigenkapitalquote " & eigenkapitalquote & _
                        "% ist zu niedrig!")
                
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!")
                        
Exit Sub
                
End Select
        
End If
        
' Gib Ergebnisse aus
        MsgBox ("Ihre monatliche Belastung ist: " & monatlicheBelastung & " DM")
        Lies_den_Immobilienpreis_ein eingabe
    
Loop
End Sub