Ich komm bei meinem Kalender nicht weiter...
also folgendes Problem.
Ich möchte gerne dass die Zahl 0,72 in jedes Feld außer am Wochenende geschrieben wird die sollen leer bleiben. (im idealfall ist die zahl sogar an den Tagen MO-FR unsichtbar kann aber trotzdem berechnet werden.)
ich hab versucht die Wochenenden durch die unten stehenden Code zu Ignorieren nur leider hab ich dann auch keine Feiertage im Kalender mehr drinnen stehen...
Ziel des ganzen ist:
- Feiertage soll an allen Tagen eintragen werden wo ein Feiertag stattfindet Auch am Wochenende. am besten in der Farbe "Rot"
- an allen anderen Wochentagen außer Sa-So soll die Zahl 0,72 stehen am besten unsichtbar für die Übersichtlichkeit und für Weiterberechnungen verwendbar - kein String.
hab schon einiges versucht und gegoogelt aber kein Ergebnis gefunden...
Hier mein Code:
Function Feiertag(Datum As Date) As VariantDim J%, D%
Dim O As Date
Dim Zahl As Variant
J = Year(Datum)
'Osterberechnung
D = (((255 - 11 * (J Mod 19)) - 21) Mod 30) + 21
O = DateSerial(J, 3, 1) + D + (D > 48) + 6 - _
((J + J \ 4 + D + (D > 48) + 1) Mod 7)
'--------------------------------------------------------------------------------------------------------------
'Feiertage berechnen
Select Case Datum
Case DateSerial(J, 1, 1)
Feiertag = "Neujahr"
Case DateSerial(J, 1, 6)
Feiertag = "Dreikönig*"
Case DateAdd("D", -2, O)
Feiertag = "Karfreitag"
Case O
Feiertag = "Ostersonntag"
Case DateAdd("D", 1, O)
Feiertag = "Ostermontag"
Case DateSerial(J, 5, 1)
Feiertag = "Erster Mai"
Case DateAdd("D", 39, O)
Feiertag = "Christi Himmelfahrt"
Case DateAdd("D", 49, O)
Feiertag = "Pfingstsonntag"
Case DateAdd("D", 50, O)
Feiertag = "Pfingstmontag"
Case DateAdd("D", 60, O)
Feiertag = "Fronleichnam*"
Case DateSerial(J, 8, 15)
Feiertag = "Maria Himmelfahrt*"
Case DateSerial(J, 10, 3)
Feiertag = "Deutsche Einheit"
Case DateSerial(J, 11, 22) - (DateSerial(J, 11, 18) Mod 7)
Feiertag = "Buß- und Bettag*"
Case DateSerial(J, 10, 31)
Feiertag = "Reformationstag*"
Case DateSerial(J, 11, 1)
Feiertag = "Allerheiligen*"
Case DateSerial(J, 12, 24)
Feiertag = "Heilig Abend*"
Case DateSerial(J, 12, 25)
Feiertag = "EWeihnacht"
Case DateSerial(J, 12, 26)
Feiertag = "ZWeihnacht"
Case DateSerial(J, 12, 31)
Feiertag = "Silvester*"
Case Else
Feiertag = 0.72
End Select
'------------------------------------------------------------------------------------------------------------
'Wochenende ignorieren
'If Weekday(Datum, 2) > 5 Then
' Feiertag = ""
'Else
' Feiertag = 0.72
'End If
'------------------------------------------------------------------------------------------------------------
'_______________________________________________________________________________________________________________
End Function
'Falls Fehler dann Fehlermeldung ersetzen durch:
Sub Fehlerbereinigung_1()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If IsError(c) Then c = ""
Next c
End Sub