Makroerweiterung
12.08.2008 20:42:46
mike49
ich habe einen Arbeitszeitnachweis, der in Vormittags- und Nachmittagsarbeitszeit untergliedert ist.
Die Anfangszeit am Vormittag wird in E8:E38 und die Endzeit in F8:F38 eingetragen. Die vom Nachmittag in G8:G38 bzw. H8:H38. Die Arbeitsdauer wird z.B. in I8 eingetragen durch die Formel =WENN(UND(F8="";H8="");"";arbdau(E8;F8;G8;H8)) und setzt sich angepasst bis I38 fort.
Das Makro "arbdau" lautet:
Option Explicit
Function arbdau(va, ve, na, ne)
Dim vorm As Date
Dim nachm As Date
If ve > 0 And va > 0 Then vorm = ve - va
If ne > 0 And na > 0 Then nachm = ne - na
arbdau = vorm + nachm
End Function
Function nettobetr(stulo, netto)
If netto > 0 Then nettobetr = stulo * netto
End Function
Function arbdauger(va, ve, na, ne)
Dim vormGer As Double
Dim nachmGer As Double
If ve > 0 And va > 0 Then vormGer = Application.WorksheetFunction.Floor(ve * 24, ",25") _
- Application.WorksheetFunction.Ceiling(va * 24, ",25")
If ne > 0 And na > 0 Then nachmGer = Application.WorksheetFunction.Floor(ne * 24, ",25") _
- Application.WorksheetFunction.Ceiling(na * 24, ",25")
arbdauger = vormGer + nachmGer
End Function
Nun möchte ich folgendes erreichen:
Wenn die in E8:E38 eingetragene Vormittags-Anfangszeit kleiner als 09:00 und die in G8:G38 eingetragene Nachmittags-Anfangszeit kleiner als 13:00 ist, soll bei der Arbeitsdauerberechnung immer ab 09:00 bzw. 13:00 gerechnet werden. Die Zeit davor wird also nicht "bezahlt".
Weiß jemand, wie man das einbauen kann?
Gruß
mike49