Moin zusammen,
ein Bekannter, den es leider nicht mehr gibt hat mir eine VBA für mein Urlaubsprogramm geschrieben.
Leider erhalte ich an manchen Stellen falsche Ergebnisse.
Es geht darum, dass meine Fahrer für An- und Abreisetage jeweils EUR 14,00 erhalten.
Für volle Tage ( Ohne An - oder Abreise) erhalten Sie EUR 28,00.
Ich selbst habe von dieser Thematik leider keine Ahnung und wollte nun nicht mit : "wenn, dann Formeln " völliges Chaos verursachen :D
Ich stelle euch den Code zur Verfügung in der Hoffnung jemand kann mir den kleinen verstecken Fehler identifizieren, der zu den teilweise falschen Ergebnissen führt:
Sub TageSpesen()
Dim Zeile, Spalte, Eintrag0, Eintrag, Eintrag1, TageSpesen28, TageSpesen14, Tage
Zeile = 4: TageSpesen28 = 0: TageSpesen14 = 0
Do
If Worksheets(15).Cells(Zeile, 1) = "" Then
Exit Do
End If
For Spalte = 2 To 367
Eintrag0 = Worksheets(15).Cells(Zeile, Spalte - 1)
Eintrag = Worksheets(15).Cells(Zeile, Spalte)
Eintrag1 = Worksheets(15).Cells(Zeile, Spalte + 1)
If Spalte = 60 Then 'wenn 28.02.
If Worksheets(15).Cells(3, 61) = 0 Then 'wenn Schaltjahr
Eintrag1 = Worksheets(15).Cells(Zeile, Spalte + 2)
End If
ElseIf Spalte = 62 Then 'wenn 01.03.
If Worksheets(15).Cells(3, 61) = 0 Then 'wenn Schaltjahr
Eintrag1 = Worksheets(15).Cells(Zeile, Spalte - 2)
End If
End If
Select Case Worksheets(15).Cells(3, Spalte)
Case "So"
If Eintrag1 = 0 Or Eintrag1 = "" Then 'wenn Montag da
TageSpesen14 = TageSpesen14 + 1
End If
Case "Mo", "Di", "Mi", "Do"
If Eintrag = 0 Or Eintrag = "" Then 'wenn heute da
If Eintrag1 > 0 Then 'wenn morgen weg
TageSpesen14 = TageSpesen14 + 1
Else
TageSpesen28 = TageSpesen28 + 1
End If
End If
If Eintrag > 0 And (Eintrag1 = 0 Or Eintrag1 = "") Then 'wenn heute weg und morgen da
TageSpesen14 = TageSpesen14 + 1
End If
Case "Fr"
If Eintrag = 0 Or Eintrag = "" Then 'wenn Freitag da
If Eintrag0 = 0 Or Eintrag0 = "" Then 'wenn Donnerstag da
TageSpesen14 = TageSpesen14 + 1
End If
End If
End Select
Select Case Spalte
Case 32
Worksheets(15).Cells(Zeile, 369) = TageSpesen28
Worksheets(15).Cells(Zeile, 370) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 61
Worksheets(15).Cells(Zeile, 371) = TageSpesen28
Worksheets(15).Cells(Zeile, 372) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 92
Worksheets(15).Cells(Zeile, 373) = TageSpesen28
Worksheets(15).Cells(Zeile, 374) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 122
Worksheets(15).Cells(Zeile, 375) = TageSpesen28
Worksheets(15).Cells(Zeile, 376) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 153
Worksheets(15).Cells(Zeile, 377) = TageSpesen28
Worksheets(15).Cells(Zeile, 378) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 183
Worksheets(15).Cells(Zeile, 379) = TageSpesen28
Worksheets(15).Cells(Zeile, 380) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 214
Worksheets(15).Cells(Zeile, 381) = TageSpesen28
Worksheets(15).Cells(Zeile, 382) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 245
Worksheets(15).Cells(Zeile, 383) = TageSpesen28
Worksheets(15).Cells(Zeile, 384) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 275
Worksheets(15).Cells(Zeile, 385) = TageSpesen28
Worksheets(15).Cells(Zeile, 386) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 306
Worksheets(15).Cells(Zeile, 387) = TageSpesen28
Worksheets(15).Cells(Zeile, 388) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 336
Worksheets(15).Cells(Zeile, 389) = TageSpesen28
Worksheets(15).Cells(Zeile, 390) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
Case 367
Worksheets(15).Cells(Zeile, 391) = TageSpesen28
Worksheets(15).Cells(Zeile, 392) = TageSpesen14
TageSpesen28 = 0: TageSpesen14 = 0
End Select
Next Spalte
Zeile = Zeile + 1
Loop
End Sub
Danke + Grüße Daniel
|