25.05.2018, 11:32
Hallo zusammen!
Ich habe folgendes Problem. Ausgehend von einem Monatswert (Spalte 49) und der Eintrittsdatum (Spalte 4) sollen Sonderzuschläge berechnet werden. Dabei sollen zeilenweise die Werte ermittelt werden. Die Werte beruhen aus den verschiedenen Cases, die zutreffen. So wie der Code momentan aussieht ist er fehlerhaft. Hat jemand eine Idee?
Es wird mir die Zeile mit der Deklarierung des Eintritt als fehlerhaft angezeigt ("Anwensunds- oder objektdefinierter Fehler")
Sub Sonderzahlung()
Dim Zeile As Integer
Dim Sonderzahlung As Long
Dim Eintritt As Date, Heute As Date
Heute = Date
Zeile = 5
Eintritt = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 4)
Select Case DateDiff("m", Eintritt, Heute)
Case Is < 6
Sonderzahlung = 0
Case 6 To 11
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 25 / 100
Case 12 To 23
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 35 / 100
Case 24 To 35
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 45 / 100
Case Else
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 55 / 100
End Select
Set book = ActiveWorkbook
While (book.Worksheets("Gehaltsdaten").Cells(Zeile, 1) <> "")
book.Worksheets("Gehaltsdaten").Cells(Zeile, 51) = Sonderzahlung
Zeile = Zeile + 1
Wend
End Sub
Ich habe folgendes Problem. Ausgehend von einem Monatswert (Spalte 49) und der Eintrittsdatum (Spalte 4) sollen Sonderzuschläge berechnet werden. Dabei sollen zeilenweise die Werte ermittelt werden. Die Werte beruhen aus den verschiedenen Cases, die zutreffen. So wie der Code momentan aussieht ist er fehlerhaft. Hat jemand eine Idee?
Es wird mir die Zeile mit der Deklarierung des Eintritt als fehlerhaft angezeigt ("Anwensunds- oder objektdefinierter Fehler")
Sub Sonderzahlung()
Dim Zeile As Integer
Dim Sonderzahlung As Long
Dim Eintritt As Date, Heute As Date
Heute = Date
Zeile = 5
Eintritt = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 4)
Select Case DateDiff("m", Eintritt, Heute)
Case Is < 6
Sonderzahlung = 0
Case 6 To 11
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 25 / 100
Case 12 To 23
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 35 / 100
Case 24 To 35
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 45 / 100
Case Else
Sonderzahlung = ActiveWorkbook.Worksheets("Gehaltsdaten").Cells(Zeile, 49) * 55 / 100
End Select
Set book = ActiveWorkbook
While (book.Worksheets("Gehaltsdaten").Cells(Zeile, 1) <> "")
book.Worksheets("Gehaltsdaten").Cells(Zeile, 51) = Sonderzahlung
Zeile = Zeile + 1
Wend
End Sub