Option Explicit


Private Sub BerechnenButton_Click()
    On Error GoTo Fehlerbehandlung
    Dim Guthaben As Double
    Dim Zins As Double
    Dim Laufzeit As Integer
    Dim Ergebnis As Double

    Guthaben = wandle_in_double_um(GuthabenInput.Text)
    Zins = wandle_in_double_um(ZinssatzInput.Text)
    Laufzeit = wandle_in_int_um(LaufzeitInput.Text)

    pruefeZins Zins
    pruefeGuthaben Guthaben
    pruefeLaufzeit Laufzeit

    Ergebnis = Guthaben * (1 + Zins / 100) ^ Laufzeit

    ErgebnisInput.Text = Ergebnis
    Exit Sub
Fehlerbehandlung:
    MsgBox ("Fehler: " & Err.Description)
End Sub

Sub pruefeZins(ByVal Zins As Double)
    Const maxZins As Double = 15

    If Zins <= 0 Or Zins > maxZins Then
        Err.Raise 5001, "pruefeZins""Zins muss zwischen 0 und 15 sein!"
    End If
End Sub

Sub pruefeGuthaben(ByVal Guthaben As Double)
    If Guthaben <= 0 Then
        Err.Raise 5002, "pruefeGuthaben""Guthaben muss größer 0 sein!"
    End If
End Sub

Sub pruefeLaufzeit(ByVal Laufzeit As Integer)
    If Laufzeit <= 0 Then
        Err.Raise 5003, "pruefeLaufzeit""Laufzeit muss größer 0 sein!"
    End If
End Sub

Function wandle_in_double_um(ByVal eingabe As StringAs Double
    If Not IsNumeric(eingabe) Then
        Err.Raise 5000, "wandle_in_double_um""Bitte nur Zahlen eingeben!"
    End If
    wandle_in_double_um = CDbl(eingabe)
End Function
Function wandle_in_int_um(ByVal eingabe As StringAs Integer
    If Not IsNumeric(eingabe) Then
        Err.Raise 5000, "wandle_in_int_um""Bitte nur Zahlen eingeben!"
    End If
    wandle_in_int_um = CInt(eingabe)
End Function