Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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
Inhaltsverzeichnis

VBA Excel Kalender erstellen

VBA Excel Kalender erstellen
09.12.2013 10:37:26
Eric
Hallo Miteinander ich bin Neu hier und hätte ein kleines Problem was ich gern lösen würde.Ich würde gern für nächstes Jahr (und kommende Jahre) einen Kalender erstellen wollen womit ich mit Hilfe eines Commantbutton einen Kalender erstellen kann in dem Wochenende Markiert wird wie auch Feiertage (Sachsen) und ich eine Tabelle oder so hinderlegen kann wo ich noch Berufsschule,Urlaub und so eintragen kann und er sie mit in den Kalender einträgt.Ich weiß das es relativ knifflich zusammengewürfelt bekommt aber zum Schluss will ich damit erreichen das nur der Commantbutton gedrückt wird und er sich alle weiteren Tagen Sucht und er mir zum Schluss den Kalender ausspuckt wo alle hinderlegten Informationen drin sind.Bin wirklich am Verzweifeln da ich über eine Woche jeden Tag dran rumtüfftle aber, ich denke mich nur im Kreis zu drehen.Hier meine bisherigen Ergebnisse leider kommt Laufzeitfehler 1004 Anwendungs-oder Objektdefinierter Fehler.Der Debugger zeigt mir an das an dieser Zeile was faul ist.
With Worksheets("Kalender").Range("A1;L32") = Worksheets("Kalender").Cells = "bytMonth"
Habe wirklich noch nicht groß mit VBA gearbeitet bis auf jetzt für den Kalender also bitte ich höflichst um Verzeihung falls Anfängerfehler aufdrehten.Aber würde mich wirklich sehr freuen wenn mir jemand helfen kann.Denn ich will das Projekt zuende bringen und nicht jetzt wo so viel reininvestiert wurde an Zeit einstampfen. :(
https://www.herber.de/bbs/user/88437.xlsm

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 10:43:40
Eric
Hier ist noch ein weitere Meldung von mir das ist mein aktuellster Arbeitsstand.Also bitte nicht das obere nehmen sondern das hier.Sorry.

Die Datei https://www.herber.de/bbs/user/88438.xlsm wurde aus Datenschutzgründen gelöscht


AW: VBA Excel Kalender erstellen
09.12.2013 11:21:53
KlausF
Hallo Eric,
statt With Worksheets("Kalender").Range("A1;L32")
With Worksheets("Kalender").Range("A1:L32")
also Semikolon gegen Doppelpunkt tauschen.
Gruß
Klaus

AW: VBA Excel Kalender erstellen
09.12.2013 11:26:39
Eric
Ich habs geändert und zumindest dieser Fehler ist behoben, vielen Dank.Manchmal sind auch die kleinen Dinge im Leben ganz groß.Nun kommt aber der fehler Laufzeitfehler 7 Nicht genügend Speicher.Wie ist das Gemeint und würde mich auch sehr freunen wenn noch weitere Teile des Projektes lösungen dafür gefunden werden.Würde mich auch schon für einige Gedenkhilfen freuen damit ich sie vielleicht auch lösen kann.

Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 11:22:24
Klaus
Hi Eric,
Möchtest du explizit Hilfe in VBA? Oder nur einen dynamischen Kalender?
Ich frage, denn dies ist für mich eine klassische Formelaufgabe, ich sehe nicht wozu das VBA benötigt. Holzweg?
Du brauchst eine dynamische Feiertagsliste für ein Jahr (gibt es haufenweise im Web, ich kann auch eine hochladen). Da kannst du auch deine eigenen "Feiertage" oder Sachsen-Spezifische Tage eintragen.
Den Kalender erstellst du einmalig per Hand, dynamisch auf das Jahr. Die Wochenenden markierst du mit der bedingten Formatierung. Die Kalenderwochen kommen per &WENN(...) dazu. Auf die Feiertagsliste beziehst du dich mit SVERWEIS(Datum;...)
Ich hätt da jetzt zwei, drei Spalten pro Datum gewählt (für die Übersicht). Könnte zwar auch alles per Formel in eine Zelle quetschen, aber dann werden die Formeln drei Kilometer lang .... ist das von dir gezeigte Muster ein Pflicht-Layout?
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 11:34:39
Eric
Das Zweite wäre so gesehen eine Art Zwangs Layout,aber solang es auf eine Seite passt und die Tabelle alle Monate beinhaltet und nicht jeder Monat einzeln ist es flexipel.Denn es geht mir darum:
VBA Script zum Erstellen des Kalenders in Tabellenblatt
Angabe Wochentag und Wochennummer, Feiertage (berechnet)
Wählbar solle folgende Angaben eingetragen werden können:
- Jahr
- Berufsschulplan,Urlaub,
Vorgabe in eigenem Tabellblatt

AW: VBA Excel Kalender erstellen
09.12.2013 11:39:22
AndrRo
Hallo Eric,
Ich habe deinen VBA-Code korrigiert. Hübscher Kalender-Generator.
https://www.herber.de/bbs/user/88441.xlsm
Viel Spass
AndrRo

Anzeige
HINWEIS
09.12.2013 11:44:51
AndrRo
... die Kalenderwochen sind bei deiner Berechnung nicht nach DIN 1355.
gruss
AndrRo

AW: VBA Excel Kalender erstellen
09.12.2013 11:49:30
Eric
Vielen Vielen Herzlichen Dank.Kenne mich nicht so gut aus nur wo und wie kann ich jetzt meine Feiertage und sonstigen Termine dort mit "einschieben".Bitte wirklich um großes Verständnis das ich bis vor diesem kleinen "Projekt" noch nie überhaupt was von VBA in Excel wusste, das es das gibt.Würde mich wirklich sehr freuen wenn noch dieses "kleine" Problem gelöst werden könnte oder zumindest Tips wie ich es lösen könnte.Denn hab davon leider kaum Ahnung :( (Schähmend).

AW: VBA Excel Kalender erstellen
09.12.2013 12:32:06
Eric
Wie kann ich die Feiertage in den Kalender "einbauen"?

Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 13:20:25
AndrRo
Es gibt 2 Arten von Feiertage,
Einmal die an einen Festen Tag gebunden sind:
Heiligabend, Tag der Einheit
Diese kannst du mit Dateserial(varyear, 12, 24) abfragen
und die ich nach Ostern richten:
Karfreitag, Pfingsten
Um den Ostersonntag zu errechnen gibt es z. Bsp die Funktion:
Public Function Ostersonntag( _
Optional ByVal Jahr As Integer _
) As Variant
Dim d1 As Integer
Dim d2 As Integer
Dim d3 As Integer
Dim d4 As Integer
'Formel nach Gauss gilt 1583 - 8202
If Jahr = 0 Then Jahr = Year(Now)
If Jahr  8202 Then _
Err.Raise 5 'Invalid argument'
'Berechnung
d1 = (8 * (Jahr \ 100) + 13) \ 25 - 2
d2 = (Jahr \ 100) - (Jahr \ 400) - 2
d1 = (15 + d2 - d1) Mod 30
d3 = 2 * (Jahr Mod 4) + 4 * (Jahr Mod 7)
d4 = (d1 + 19 * (Jahr Mod 19)) Mod 30
If d4 = 29 Then
d4 = 28
ElseIf d4 = 28 Then
If (Jahr Mod 19) > 10 Then d4 = 27
End If
d3 = (6 + d2 + d3 + 6 * d4) Mod 7
'Berechnung Des Datums (ausgehend vom 22.3.)
Ostersonntag = DateSerial(Jahr, 3, 22 + d4 + d3)
End Function
Mit Ostersonntag(varYear) erhält du den das Datum für den Ostersonntag im Jahr
dann kannst du mit Ostersonntag(varYear) + 1 für (Ostermontag) abfragen.
gruss
AndrRo

Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 14:49:08
Eric
Und wie kann ich die beiden "Urfeiertage",Andere Feiertage wie Maifeiertag,Wiedervereinigung u.s.w oder auch eigene Termine (Urlaub,Schulung) wäre das möglich und wie kann ich diese Formeln in den korregierten Kalender einbauen?

AW: VBA Excel Kalender erstellen
09.12.2013 16:14:43
AndrRo
Diese Formel wird einfach in einen Modul abgelegt. Dadurch steht dir die Funktion Ostersonntag(Jahr) zur Verfügung. Die von Ostern abhängigen Feiertage und genauen Abstände zu Ostersonntag findest du im Internet.
Du kannst eine Abschnitt "Tage aufbereiten" erweitern und die Feiertage abfragen:
select case DateSerial(varYear, bytMonth, bytDay)
case DateSerial(varYear, 12, 24)
.Interior = 3 'Heiligabend
case DateSerial(varYear, 10, 3)
.Interior = 4 'Tag der Einheit
Case Ostersonntag(varYear)
.Interior = 4 'Ostersonntag
case Ostersonntag(varyear)-2
.Interior = 4 'Karfreitag
etc...
end select
Soweit zu den Feiertagen, die werden EINZELN abgefragt.
Urlaub und Seminare sind Jahr für Jahr für Jahr verschieden und weitern meistens in Von-Bis-Bereichen angegeben. Das würde ich nicht im VBA-Code hinterlegen.
gruss
AndrRo

Anzeige
AW: VBA Excel Kalender erstellen
09.12.2013 16:14:50
AndrRo
Diese Formel wird einfach in einen Modul abgelegt. Dadurch steht dir die Funktion Ostersonntag(Jahr) zur Verfügung. Die von Ostern abhängigen Feiertage und genauen Abstände zu Ostersonntag findest du im Internet.
Du kannst eine Abschnitt "Tage aufbereiten" erweitern und die Feiertage abfragen:
select case DateSerial(varYear, bytMonth, bytDay)
case DateSerial(varYear, 12, 24)
.Interior = 3 'Heiligabend
case DateSerial(varYear, 10, 3)
.Interior = 4 'Tag der Einheit
Case Ostersonntag(varYear)
.Interior = 4 'Ostersonntag
case Ostersonntag(varyear)-2
.Interior = 4 'Karfreitag
etc...
end select
Soweit zu den Feiertagen, die werden EINZELN abgefragt.
Urlaub und Seminare sind Jahr für Jahr für Jahr verschieden und weitern meistens in Von-Bis-Bereichen angegeben. Das würde ich nicht im VBA-Code hinterlegen.
gruss
AndrRo
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige