Aktuelle Seite:
/vba/vbakalender2.htm
Letzte Änderung: 21.01.2007

Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003Getestet unter Word2007Getestet unter Win2000Getestet unter WinXP  
VBA-Code verfügbar: ja
Beispiel anzeigen
Makro/Datei speichern
Print

Update (20.1.2007)

  • Es wurde ein Fehler bei der Verteilung der Monate auf mehrere Seiten behoben
  • Die Darstellung der Farben (Feiertage, Wochenende) lässt sich jetzt im Code ändern
  • Es können nun optional die Schulferien der Bundesländer (bis 2009-sofern bereits bekannt) eingetragen werden

Ausgehend von dem  Kalender-Makro wurden in dieser Version folgende Dinge geändert:

  • Ausgabe kann jetzt auf mehreren Blättern erfolgen
  • Mehr als 12 Monate möglich
  • Feiertage werden berechnet und eingetragen
  • Mondphasen werden angezeigt
  • Bessere Benutzerführung durch eine fertige Dokumentvorlage (.dot)

Update
Es wurde ein Fehler in der Dimensionierung, der zu einem Indexfehler führen konnte, behoben. Die Feiertagsberechnung für den 1.Januar sollte jetzt auch korrekt in dem Kalender eingetragen werden.

Die Feiertage werden in der Funktion Berechnen_Feiertage(oDatum As Date) erfasst und können dort gepflegt werden. Dabei ist zu beachten, dass die Feiertagsnamen und -daten in zwei getrennten Arrays gespeichert werden, einen besseren Zugriff zu erhalten. Wird ein neuer Feiertag (oder fix in den Kalender einzutragender Termin) erfasst, muss unbedingt die Array-Grenze mit geändert werden, um einen Überlauf-Fehler zu vermeiden!


Private Sub Berechnen_Feiertage(oDatum As Date)  
' Bitte beim Ergänzen beachten:  
' Redim-Grenzen auch hochsetzen!  
ReDim Feiertage(13)
ReDim FeiertageNamen(13)
Dim oDat As Date 
oDat = OsterDatum(Year(oDatum))
FeiertageNamen(1) = "Neujahr": Feiertage(1) = "01.01." & Year(oDatum)
FeiertageNamen(2) = "Fastenzeit": Feiertage(2) = DateAdd("d", -41, oDatum)
FeiertageNamen(3) = "Karfreitag": Feiertage(3) = DateAdd("d", -2, oDat)
FeiertageNamen(4) = "Ostern": Feiertage(4) = oDat
FeiertageNamen(5) = "Ostern": Feiertage(5) = DateAdd("d", 1, oDat)
FeiertageNamen(6) = "1. Mai": Feiertage(6) = "01.05." & Year(oDatum)
FeiertageNamen(7) = "Himmelfahrt": Feiertage(7) = DateAdd("d", 39, oDat)
FeiertageNamen(8) = "Pfingsten": Feiertage(8) = DateAdd("d", 50, oDat)
FeiertageNamen(9) = "Pfingsten": Feiertage(9) = DateAdd("d", 49, oDat)
FeiertageNamen(10) = "Heiligab.": Feiertage(10) = "24.12." & Year(oDatum)
FeiertageNamen(11) = "1.Weihn.": Feiertage(11) = "25.12." & Year(oDatum)
FeiertageNamen(12) = "2.Weihn.": Feiertage(12) = "26.12." & Year(oDatum)
FeiertageNamen(13) = "Einheit": Feiertage(13) = "3.10." & Year(oDatum)
End Sub 

Das mitgegebene Datum oDatum wird für die Berechnung des Osterdatums und der darauf basierenden weiteren Feiertage benötigt.



 www.chf-online.de/vba/vbakalender2.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)