Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
472to476
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
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Funktion in VBA für netto Arbeitszeit

Funktion in VBA für netto Arbeitszeit
25.08.2004 10:40:11
Proximus
Hallo,
ich bin gerade dabei so was wie NETTOARBEITSTAGE() in VBA zu schrieben und hab da leider ein Problem.
Ich möchte diese Variablen übergeben können:
Function Nettotage(endDatum As Date, dauer As Integer, feiertag() As Date, samstag As String, sonntag As String)
End Funktion
endDatum: das Enddatum des Zeitraumes
dauer: die Dauer des Zeitraumes (17.-20. = 4 Tage)
feiertage(); dachte ich mir eigentlich das ich da so was wie A12:F15 angeben kann
samstag: optionale Angabe ob am Samstag gearbeitet wird oder nicht
sonntag: optionale Angabe ob am Sonntag gearbeitet wird oder nicht
Die Probleme sind also wie kann ich das Feld von Feiertagen übergeben und das das Anfangs- und Enddatum ebenfals kein freier Tag sein darf (sprich die Verschiebung des Anfangsdatums so lange nach vorn bis es keiner ist und mit dem Enddatum so weit nach hinten)
Ausserdem wie kann ich die einzelnen Zellen des Feldes ansprechen.
Kann mir jemand helfen oder hat schon jemand so was geschrieben und kann es mir geben?
Danke und Gruß Proximus

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

Betreff
Datum
Anwender
Anzeige
AW: Funktion in VBA für netto Arbeitszeit
Sigi
Hallo Proximus,
es ist unklar was du erreichen willst. Im Betreff schreibst du "Nettoarbeitszeit" im Text
geht es aber wohl um Arbeitstage? Wie ist das mit dem Vorwärts- bzw. Rückwärtsrechnen des
EndDatums zu verstehen? Was ist, wenn am Sonntag gearbeitet werden soll, dieser aber ein
Feiertag ist? Wird dann gearbeitet?
Kannst du mal ein Beispiel angeben, was du genau erreichen willst?
Gruß
Sigi
AW: Funktion in VBA für netto Arbeitszeit
25.08.2004 16:41:43
max
'Hallo, hab grade einen Kalender geschrieben, hier einige Fragmente:
'Ob Datum Feiertag ist oder nicht lässt sich über "If Len(Feiertag("25.12.05")>0" prüfen

Private Function Feiertag(Datum As Date)
Dim OstTag As Date
OstTag = Ostern(Year(Datum))
Select Case Datum
Case DateSerial(Year(Datum), 1, 1)
Feiertag = "Neujahr"
Case OstTag - 2
Feiertag = "Karfreitag"
Case OstTag
Feiertag = "Ostersonntag"
Case OstTag + 1
Feiertag = "Ostermontag"
Case DateSerial(Year(Datum), 5, 1)
Feiertag = "Tag der Arbeit"
Case OstTag + 39
Feiertag = "Himmelfahrt"
Case OstTag + 49
Feiertag = "Pfingstsonntag"
Case OstTag + 50
Feiertag = "Pfingstmontag"
Case DateSerial(Year(Datum), 10, 3)
Feiertag = "Nationalfeiertag"
Case DateSerial(Year(Datum), 12, 25)
Feiertag = "1. Weihnachtstag"
Case DateSerial(Year(Datum), 12, 26)
Feiertag = "2. Weihnachtstag"
Case Else
Feiertag = ""
End Select
End Function


Private Function Ostern(Jhr%) As Date
Dim d As Integer
d = (((255 - 11 * (Jhr Mod 19)) - 21) Mod 30) + 21
Ostern = DateSerial(Jhr, 3, 1) + d + (d > 48) + _
6 - ((Jhr + Jhr \ 4 + d + (d > 48) + 1) Mod 7)
End Function

'Ausserdem hab' ich 'ne Formel verwendet um Ferien mit Wochenende anzuzeigen:
'=WENN(ODER(WOCHENTAG(A8;2)=1;WOCHENTAG(A8;2)=7)=WAHR;A8-WOCHENTAG(A8);A8) 'Anfang
'=WENN(ODER(WOCHENTAG(B8;2)=5;WOCHENTAG(B8;2)=6)=WAHR;B8+7-WOCHENTAG(B8;2);B8) 'Ende
'Zum Prüfen in Zellen daneben: =TEXT(D8;"TTT")
'Weiterhin viel Spass
'max
Anzeige

270 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige