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

Kalender und Feiertage

Kalender und Feiertage
22.11.2006 11:40:20
Mathias
Hallo zusammen,
ich wollte für mich ein Dienstplan erstellen, für die kommende Jahre.
darin wollt ich mir nicht nur die Wochentage sondern auch die Feiertage mit anzeigen lassen.
gibt es da eine Funktion wo ich mir z.B. für Sachsen-Anhalt (bzw. andere Bundeländer)
die Feiertage mitanzeigen lassen kann.
MFG

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kalender und Feiertage
22.11.2006 11:48:05
{mskro}
Hallo Mathias,
es gibt die Funktion Ostern, aus der du Feiertage berechnen kannst.
Gruss Manfred
Rückmeldung wäre nett!
AW: Kalender und Feiertage
22.11.2006 11:52:06
{mskro}
Diese Funktion ins Modul kopieren.
Public

Function Ostern(Yr As Integer)
'Funktion für die Feiertagsberechnung
Dim d As Integer
d = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
Ostern = DateSerial(Yr, 3, 1) + d + (d > 48) + _
6 - ((Yr + Yr \ 4 + d + (d > 48) + 1) Mod 7)
End Function

Gruss Manfred
Rückmeldung wäre nett!
AW: Kalender und Feiertage
22.11.2006 12:02:57
UweD
Hallo
über die Benutzerdefinierte Feiertagsfunktion.
Code in eine Modul copieren.


      
Public Function FeierTag(Datum As Date, n As BooleanAs 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" 'nicht in NRW
            Case "01.05": FeierTag = "Tag der Arbeit"
            
'Case "15.08": FeierTag = "Mariä Himmelfahrt" 'nicht in NRW
            Case "03.10": FeierTag = "Tag der Deutschen Einheit"
            
'Case "31.10": FeierTag = "Reformationstag" 'nicht in NRW
            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" 'nicht in NRW
                    'Case -48: FeierTag = "Rosenmontag" 'nicht in NRW
                    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" 'nicht in NRW
                        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 Tabelle wird das so benutzt..
 
 ABCDE
1Datum01.01.200602.01.2006 Parameter
2Feiertag?Neujahrgewöhnlicher Montag N=1
3Feiertag?Neujahr  N=0
Formeln der Tabelle
B2 : =FeierTag(B1;1)
C2 : =FeierTag(C1;1)
B3 : =FeierTag(B1;0)
C3 : =FeierTag(C1;0)
 

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
Musterdatei
22.11.2006 12:04:10
{mskro}
So, ich habe dir mal eine kleine Musterdatei eingestellt, in der du nur das Jahr ändern mußt, dann aktualisieren sich die Feiertage von selber. Allerdings mußt du die speziellen Feiertage für Sachsen nachpflegen.
https://www.herber.de/bbs/user/38404.xls
Gruss Manfred
Rückmeldung wäre nett!
ohne Funktion
22.11.2006 12:45:55
Franz
Hallo Mathias,
hier eine Datei mit einer Excel-Formel für Ostern: https://www.herber.de/bbs/user/38405.xls.
Es sind zwar Makros drin, die haben aber nix mit der Feiertagsberechnung zu tun.
Grüße Franz
Anzeige
AW: ohne Funktion
23.11.2006 08:20:12
Mathias
ja danke an alle,
das klappt so ganz gut.
MFG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige