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

Bei Feiertag keine Schicht

Bei Feiertag keine Schicht
09.12.2005 10:13:54
Heinz
Hallo Leute
Habe von meiner Firma eine Stundennachweis bekommen.Denn ich aber verfeinern möchte. Habe einen Teil mal hochgeladen.
Es geht um einen Kollegen der von Montag bis Freitag arbeitet.Das ist kein Probl.
Nur an Feiertagen hat er auch frei.
Das wurde in den Makro von der Firma leider nicht berücksichtigt.
Leider kenne ich mich mit dem Makro "Feiertage" & "Stunden" überhaubst nicht aus.
Passwort für VBA Code "hh"
Habe im Tab.Blatt N13:Ar13 die Formel für die arbeitszeit eingefügt.
Aber eben die Feiertage !!!
Könnte mir bitte jemand dabei helfen.
Danke Heinz
https://www.herber.de/bbs/user/29077.xls

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Feiertag keine Schicht
09.12.2005 10:44:14
UweD
Hallo
Bei dir ist nur die Osterformel eingebaut.
Ich hab hier eine Funktion, die daraus auch die Feiertage ermittelt.
Ergänze / Tausche das Makro im Modul Feiertage..
Public Function FeierTag(Datum As Date, N As Boolean) As String
Dim Jahr As Integer
Jahr = Year(Datum)
If (Jahr > 1904) And (Jahr < 2100) Then
Select Case Format$(Datum, "dd.mm")
' Gesetzliche Feiertage
Case "01.01": FeierTag = "Neujahr"
Case "06.01": FeierTag = "Heilige Drei Könige"
Case "01.05": FeierTag = "Tag der Arbeit"
Case "15.08":  FeierTag = "Mariä Himmelfahrt"
Case "03.10": FeierTag = "Tag der Deutschen Einheit"
Case "31.10": FeierTag = "Reformationstag"
Case "01.11": FeierTag = "Allerheiligen"
Case "24.12": FeierTag = "Heiligabend"
Case "25.12": FeierTag = "1. Weihnachtsfeiertag"
Case "26.12": FeierTag = "2. Weihnachtsfeiertag"
Case "31.12": FeierTag = "Sylvester"
Case Else
' Bewegliche Feste:
Select Case Datum - OsterSonntag(Datum)
Case -52: FeierTag = "Weiberfastnacht"
Case -48: FeierTag = "Rosenmontag"
Case -2:  FeierTag = "Karfreitag"
Case 0:  FeierTag = "Ostersonntag"
Case 1:  FeierTag = "Ostermontag"
Case 39:  FeierTag = "Christi Himmelfahrt"
Case 49:  FeierTag = "Pfingstsonntag"
Case 50:  FeierTag = "Pfingstmontag"
Case 60:  FeierTag = "Fronleichnam"
Case Else
If Datum = CDate("25.12." & Jahr) - Weekday("25.12." & Jahr, _
vbMonday) - 32 Then
FeierTag = "Buß- und Bettag"
Else
If N = True Then
FeierTag = "gewöhnlicher " & Format$(Datum, "DDDD") ' Kein Feiertag
ElseIf N = False Then
FeierTag = vbNullString ' Kein Feiertag
End If
End If
End Select
End Select
Else: FeierTag = vbNullString
End If
End Function
Public Function OsterSonntag(Datum As Date) As Date
Dim A As Integer, D As Integer, E As Integer, Jahr As Integer
Jahr = Year(Datum)
If (1904 < Jahr) And (Jahr < 2100) Then  ' Datum zulässig ?
A = Jahr Mod 19
D = (19 * A + 24) Mod 30
E = (2 * (Jahr Mod 4) + 4 * (Jahr Mod 7) + 6 * D + 5) Mod 7
OsterSonntag = CDate(DateSerial(Jahr, 3, 22 + D + E))
If Month(OsterSonntag) = 4 Then
If Day(OsterSonntag) = 26 Or (Day(OsterSonntag) = 25 And E = 6 And A > 10) Then
OsterSonntag = OsterSonntag - 7
End If
End If
End If
End Function

In der Zelle N12 diese geänderte Formel. (dann weiterkopieren)
 
 N
13 
Formeln der Tabelle
N13 : =WENN(D272="Urlaub";"";WENN(D272="Krank";"";WENN(Feiertage.FeierTag(N12;0)<>"";"";WENN(WOCHENTAG(N12;2)<5;8;WENN(WOCHENTAG(N12;2)=5;6;"")))))
 

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Bei Feiertag keine Schicht
09.12.2005 10:51:38
UweD
Hallo nochmal
Ich muß mich verbessern. in den anderen Modulen steht doch noch was über Feiertage.
Das alles aber abzuchecken geht mir hier zu weit...
Gruß UweD
(Rückmeldung wäre schön)
AW: Bei Feiertag keine Schicht
09.12.2005 11:00:23
Heinz
Hallo Uwe
Recht herzlichen Dank funkt.einwandfrei.
Aber ich glaube die restlichen Feiertage sind im Modul "Stunden" oder ist das nur zum Stundenberechnen ?
Nochmals Danke & Gruß Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige