Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
26.06.2008 12:33:46 |
daniel |
|
|
|
26.06.2008 13:52:22 |
daniel |
|
|
Aw:VBA Programm das Wochenende und Feiertage rausr |
28.06.2008 11:26:59 |
Holger |
|
|
Von:
Holger |
Datum:
28.06.2008 11:26:59 |
Views:
1375 |
Rating:
|
Antwort:
|
Thema:
Aw:VBA Programm das Wochenende und Feiertage rausr |
Hallo Daniel,
vielleicht gibt es noch etwas einfacheres, aber das musst du selbst recherchieren.
Meine Hinweise:
Die Arbeitstage kannst du auch ohne VBA mit der Funktion Nettoarbeitstage (im VBA natürlich NetWorkDays. also:
a=Application.WorksheetFunction.NetWorkDays(Startdatum, Enddatum, Bereich für Feiertage).
Die Feiertage sind entweder an einem festen Datum oder hängen von Ostern oder dem Wochentag z.B. des Heiligen Abends ab. Die Feiertage musst du in die Zellen des Bereichs für Feiertage stellen (Cells(Zeile, Spalte)=CStr(berechnetes Datum des Feiertages)). Sei j eine Stringvariable mit der Jahreszahl zwischen 1901 und 2099. Ggf. musst du mehrere Jahre für die Feiertag berücksichtigen:
Feste Feiertage (regional verschieden):
Neujahr: Cdate(„01.01.“+j)
Hl. 3 Kö: Cdate(„06.01.“+j)
Maifeiertag: Cdate(„01.05.“+j)
Friedensfest: Cdate(„08.08.“+j)
Maria Himmelf.: Cdate(„15.08.“+j)
Tag dt. Einh.: Cdate(„03.10.“+j)
Reformationstag: Cdate(„31.10.“+j)
Allerheiligen: Cdate(„01.11.“+j)
Heiliger Abend: Cdate(„24.12.“+j)
1. Weihn: Cdate(„25.15.“+j)
2. Weihn.: Cdate(„26.12.“+j)
Silvester: Cdate(„31.12.“+j)
Bewegliche Feiertage:
Ostern berechnest du nach der Gauß-Formel. Hier ein älteres Programm aus meiner Anfängerzeit, das du sicherlich manipulieren musst:
Sub Osterberechnung()
j = Val(j)
m = 24: n = 5
a = j Mod 19: b = j Mod 4: c = j Mod 7
d = (19 * a + m) Mod 30
e = (2 * b + 4 * c + 6 * d + n) Mod 7
If d + e 10) Then o = DateSerial(j, 4, 18)
End If
End Sub
Die möglichen Feiertage, die nicht zwingend auf ein Wochenende fallen, sind dann
o - 48 = "Rosenmontag"
o - 47 = "Fastnacht "
o - 46 = "Aschermittwoch "
o - 2 = "Karfreitag "
o + 1 = "Ostermontag "
o + 39 = "Chr. Himmelfahrt "
o + 50 = "Pfingstmontag "
o + 60 = "Fronleichnam "
e = DateSerial(j, 12, 24): w1 = WeekDay(e): If w1 > 1 Then e = e - w1 + 1
e - 32 = "Buß- u. Bettag "
Viel Erfolg
Holger
daniel schrieb am 26.06.2008 12:33:46:
Hallo zusammen,
ich bin Praktikant und soll eine Soll / Ist Vergleich für 2007 machen.
Ich habe in Excel 2 Spalten, einmal mit den Soll Daten und einmal mit den Ist Daten. Nun soll ich als VBa newbie ein Programm erstellen das mir die Differenz der beiden Spalten errechnet und ausgibt und gleichzeitig aber die Wochenendtage und Feiertage nicht mitrechnet.
Ich bin sehr gerne bereit mich hier einzuarbeiten und will auch VBA erlernen d.h. ich erwarte kein vollständiges Programm aber ehrlich gesagt ich habe keine Ahnung wie und wo ich anfangen soll, hab auch noch n bischen zeitdruck :-(
wenn mir jemand n bischen auf die Sprünge helfen kann mit ein paar guten Tipps, wäre ich hierfür sehr dankbar aber bitte keine Buchtipps, habe schon VBA f+ür Dummies daheim...
lg
daniel |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
26.06.2008 12:33:46 |
daniel |
|
|
|
26.06.2008 13:52:22 |
daniel |
|
|
Aw:VBA Programm das Wochenende und Feiertage rausr |
28.06.2008 11:26:59 |
Holger |
|
|