Microsoft Excel

Herbers Excel/VBA-Archiv

Makroerweiterung

Betrifft: Makroerweiterung von: mike49
Geschrieben am: 12.08.2008 20:42:46

Hallo zusammen,
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

  

Betrifft: AW: Makroerweiterung von: ede
Geschrieben am: 13.08.2008 07:18:20

Hallo,
dann bau das in die funktion ein:

Function arbdau(va, ve, na, ne)
Dim vorm As Date
Dim nachm As Date

'Anfangszeit auf <9:00Uhr prüfen
if va<1/24*9 then va=1/24*9
'Ende Anfangszeit

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



gruss


  

Betrifft: Das funktioniert prima . . . von: mike49
Geschrieben am: 13.08.2008 08:11:48

Danke ede für deine Hilfe.

Gruß
mike49