Option Explicit
Private Sub BeschriftungVerkaufsbetrag_Click()
End Sub
Private Sub SchaltflächeBerechnen_Click()
Dim umsatzEingabe As String
Dim verkaufsbetragEingabe As String
Dim umsatz As Double
Dim verkaufsbetrag As Double
umsatzEingabe = UmsatzInput.Text
verkaufsbetragEingabe = VerkaufsbetragInput.Text
If Not ueberpruefe_Benutzereingaben(umsatzEingabe, _
verkaufsbetragEingabe, umsatz, verkaufsbetrag) Then Exit Sub
ProvisionInput.Text = berechne_Provision(umsatz, verkaufsbetrag)
End Sub
Private Function ueberpruefe_Benutzereingaben(ByVal umsatzEingabe As String, _
ByVal verkaufsbetragEingabe As String, _
umsatz As Double, _
verkaufsbetrag As Double) _
As Boolean
ueberpruefe_Benutzereingaben = True
If Not wandle_in_Double_um(umsatzEingabe, umsatz) Then
ueberpruefe_Benutzereingaben = False
MsgBox ("Der erste Parameter (umsatz) der Funktion ist keine Zahl!")
Exit Function
End If
If Not wandle_in_Double_um(verkaufsbetragEingabe, verkaufsbetrag) Then
ueberpruefe_Benutzereingaben = False
MsgBox ("Der zweite Parameter (verkaufsbetrag) der Funktion ist keine Zahl!")
Exit Function
End If
If verkaufsbetrag > umsatz Then
MsgBox ("Umsatz muß gr\'a8oßer gleich Verkaufsbetrag sein!")
ueberpruefe_Benutzereingaben = False
Exit Function
End If
End Function
Private Function berechne_Provision(ByVal umsatz As Double, _
ByVal verkaufsbetrag As Double) _
As Double
Dim provisionInProzent As Double
' Umsatzgrenzen sind DM-Betraege
Const umsatzGrenze1 As Double = 100000
Const umsatzGrenze2 As Double = 500000
Const umsatzGrenze3 As Double = 1000000
' Provisionen in Prozent
Const provisionUmsatzGrenze1 As Double = 5
Const provisionUmsatzGrenze2 As Double = 10
Const provisionUmsatzGrenze3 As Double = 20
' Bestimme Provision
If umsatz >= umsatzGrenze3 Then
provisionInProzent = provisionUmsatzGrenze3
ElseIf umsatz >= umsatzGrenze2 Then
provisionInProzent = provisionUmsatzGrenze2
ElseIf umsatz >= umsatzGrenze1 Then
provisionInProzent = provisionUmsatzGrenze1
Else
provisionInProzent = 0
End If
' Berechne die Provision
berechne_Provision = (verkaufsbetrag * provisionInProzent) / 100
End Function
Private Function wandle_in_Double_um(ByVal eingabe As String, rueckgabe As Double) _
As Boolean
wandle_in_Double_um = True
If Not IsNumeric(eingabe) Then
MsgBox ("Der von Ihnen eingegebene Wert muß eine Zahl sein! ")
wandle_in_Double_um = False
Exit Function
End If
rueckgabe = CDbl(eingabe)
End Function