Function noteSelectCase(maximalpunkte As Integer, _
benoetigteProzente As Double, _
erreichtePunkte As Integer) As String
Dim benoetigtePunkte As Integer
Dim spanne As Integer
Dim punkteProNote As Integer
Dim punkteZweiZwischenNoten As Integer
Dim punkteDreiZwischenNoten As Integer
Dim grenze4_0 As Integer
Dim grenze3_7 As Integer
Dim grenze3_3 As Integer
Dim grenze3_0 As Integer
Dim grenze2_7 As Integer
Dim grenze2_3 As Integer
Dim grenze2_0 As Integer
Dim grenze1_7 As Integer
Dim grenze1_3 As Integer
Dim grenze1_0 As Integer
benoetigtePunkte = Int((maximalpunkte * benoetigteProzente) / 100)
spanne = maximalpunkte - benoetigtePunkte
punkteProNote = Int(spanne / 4)
punkteZweiZwischenNoten = Int(punkteProNote / 2)
punkteDreiZwischenNoten = Int(punkteProNote / 3)
grenze4_0 = benoetigtePunkte
grenze3_7 = benoetigtePunkte + punkteZweiZwischenNoten
grenze3_3 = benoetigtePunkte + punkteProNote
grenze3_0 = grenze3_3 + punkteDreiZwischenNoten
grenze2_7 = grenze3_0 + punkteDreiZwischenNoten
grenze2_3 = benoetigtePunkte + 2 * punkteProNote
grenze2_0 = grenze2_3 + punkteDreiZwischenNoten
grenze1_7 = grenze2_0 + punkteDreiZwischenNoten
grenze1_3 = benoetigtePunkte + 3 * punkteProNote
grenze1_0 = grenze1_3 + punkteZweiZwischenNoten
Select Case erreichtePunkte
Case Is >= grenze1_0:
noteSelectCase = "1"
Case Is >= grenze1_3:
noteSelectCase = "1,3"
Case Is >= grenze1_7:
noteSelectCase = "1,7"
Case Is >= grenze2_3:
noteSelectCase = "2,3"
Case Is >= grenze2_0:
noteSelectCase = "2"
Case Is >= grenze2_3:
noteSelectCase = "2,3"
Case Is >= grenze2_7:
noteSelectCase = "2,7"
Case Is >= grenze3_0:
noteSelectCase = "3"
Case Is >= grenze3_3:
noteSelectCase = "3,3"
Case Is >= grenze3_7:
noteSelectCase = "3,7"
Case Is >= grenze4_0:
noteSelectCase = "4"
Case Else
noteSelectCase = "5"
End Select
End Function