Anzeige
Archiv - Navigation
1000to1004
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroerweiterung

Makroerweiterung
12.08.2008 20:42:46
mike49
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroerweiterung
13.08.2008 07:18:00
ede
Hallo,
dann bau das in die funktion ein:

Function arbdau(va, ve, na, ne)
Dim vorm As Date
Dim nachm As Date
'Anfangszeit auf  0 And va > 0 Then vorm = ve - va
If ne > 0 And na > 0 Then nachm = ne - na
arbdau = vorm + nachm
End Function


gruss

Das funktioniert prima . . .
13.08.2008 08:11:00
mike49
Danke ede für deine Hilfe.
Gruß
mike49
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige