PDA

Vollständige Version anzeigen : FEIERTAGE per MAKRO errechnen???


Kruemelmonster
22.05.2001, 10:27
Hallo Ihr lieben!
Zuerst möchte ich mich mal bei allen bedanken die mir so gut weitergeholfen haben!!!
DAAAAANKKKKKEEE!
Aber wie es so ist gibt es immer wieder neue Probleme.
Mein neustes Problem ist, ich würde gerne für jedes aktuelle Jahr mir mit einem Makro, falls es ohne geht ist das auch in ordnung, mir die Feiertage berechnen lassen und diese natürlich dann in ein bestimmtes Feld einfügen.
WER KANN MIR WEITERHELFEN!
Vielen Dank nochmal ohne EUCH WÄRE ICH AUFGESCHMISSEN!
Viele Grüsse
Kruemelmonster

Budgie
30.05.2001, 20:04
Hallo Krümelmonster,

in der Ausgabe 4/99 des PC-Magazins gab es einen Workshop für Excel 97 zur Erstellung eines Kalenders mit entsprechenden VBA-Prozeduren.

Könnte Dir das helfen?

RobertQ
19.06.2001, 12:12
Hallo Kruemelmonster,

vielleicht kommt meine Antwort ja etwas zu spät (bin erst neu hier):
Dein Problem sind die beweglichen Feiertage die an Ostern gekoppelt sind. Diese Feiertage lassen sich über eine Funktion berechnen:
Function Ostern(J%) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%
A = J Mod 19
B = J Mod 4
C = J Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E

If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern = DateSerial(J, 4, 18)
ElseIf P = 57 Then
Ostern = DateSerial(J, 4, 19)
Else
Ostern = DateSerial(J, 4, P - 31)
End If
Else
Ostern = DateSerial(J, 3, P)
End If

End Function
Wenn Du diese Funktion hast, brauchst Du sie nur noch in einer kleinen Tabelle einzusetzen:
Feiertag Formel Datum Jahr
Neujahr "=DATUM($D$2;1;1) 01.01.00 2000
Karfreitag "=Ostern($D$2)-2 21.04.00
Ostersonntag "=Ostern($D$2) 23.04.00
Ostermontag "=Ostern($D$2)+1 24.04.00
Tag d. Arbeit "=DATUM($D$2;5;1) 01.05.00
Christi Himmelfahrt "=Ostern($D$2)+39 01.06.00
Pfingstsonntag "=Ostern($D$2)+49 11.06.00
Pfingstmontag "=Ostern($D$2)+50 12.06.00
Fronleichnam "=Ostern($D$2)+60 22.06.00
Nationalfeiertag "=DATUM($D$2;10;3) 03.10.00
Allerheiligen "=DATUM($D$2;11;1) 01.11.00
Heiligabend "=DATUM($D$2;12;24) 24.12.00
1. Weihnachtstag "=DATUM($D$2;12;25) 25.12.00
2. Weihnachtstag "=DATUM($D$2;12;26) 26.12.00
Sylvester "=DATUM($D$2;12;31) 31.12.00
In dieser Tabelle werden zu dem Ostertermin für das Jahr die Anzahl Tage hinzugezählt. Bis auf die erste Zeile sind alle anderen 3-spaltig: Feiertag /Formel/Ergebnis. In der ersten Zeile kommt noch das Jahr 2000 hinzu (nur damit es besser zu lesen ist)
mfg
Robert

RobertQ
19.06.2001, 12:19
Sorry, ich habe noch etwas vergessen.
Die ermittelten Feiertage lassen sich in der Excel-Funktion "Nettoarbeitstage" auch als Feiertagsbereich einsetzen.
mfg
Robert