25.05.2018, 13:36
Hallo,
es sollen Sonderzulagen ausgehend von der Anzahl an Monaten der Betriebsangehörigkeit berechnet werden. Dabei gehe ich zeilenweise mit der For..Next - Schleife durch und habe mit Select Case eine Fallunterscheidung.
Es wird mir ein Fehler beim Kompilieren angezeigt: "Next ohne For". Hat jemand eine Idee?
Sub Sonderzulage()
Dim Zeile As Long
Dim ZeileMax As Long
Dim Sonderzulage As Double
Dim Betriebszugehörigkeit As Integer
With tbl_Gehaltsdaten
ZeileMax = .Cells(Rows.Count, 2).End(xlUp).Row
For Zeile = 5 To ZeileMax
Betriebszugehörigkeit = DateDiff("m", .Cells(Zeile, 4).Value, Now)
Select Case Betriebszugehörigkeit
Case 0 To 5
Sonderzulage = 0
Case 6 To 11
Sonderzulage = .Cells(Zeile, 49).Value * 25 * 100
Case 12 To 23
Sonderzulage = .Cells(Zeile, 49).Value * 35 * 100
Case 24 To 35
Sonderzulage = .Cells(Zeile, 49).Value * 45 * 100
Case Else
Sonderzulage = .Cells(Zeile, 49).Value * 55 * 100
.Cells(Zeile, 52).Value = Sonderzulage
Next Zeile
End With
End Sub
es sollen Sonderzulagen ausgehend von der Anzahl an Monaten der Betriebsangehörigkeit berechnet werden. Dabei gehe ich zeilenweise mit der For..Next - Schleife durch und habe mit Select Case eine Fallunterscheidung.
Es wird mir ein Fehler beim Kompilieren angezeigt: "Next ohne For". Hat jemand eine Idee?
Sub Sonderzulage()
Dim Zeile As Long
Dim ZeileMax As Long
Dim Sonderzulage As Double
Dim Betriebszugehörigkeit As Integer
With tbl_Gehaltsdaten
ZeileMax = .Cells(Rows.Count, 2).End(xlUp).Row
For Zeile = 5 To ZeileMax
Betriebszugehörigkeit = DateDiff("m", .Cells(Zeile, 4).Value, Now)
Select Case Betriebszugehörigkeit
Case 0 To 5
Sonderzulage = 0
Case 6 To 11
Sonderzulage = .Cells(Zeile, 49).Value * 25 * 100
Case 12 To 23
Sonderzulage = .Cells(Zeile, 49).Value * 35 * 100
Case 24 To 35
Sonderzulage = .Cells(Zeile, 49).Value * 45 * 100
Case Else
Sonderzulage = .Cells(Zeile, 49).Value * 55 * 100
.Cells(Zeile, 52).Value = Sonderzulage
Next Zeile
End With
End Sub