ich habe nur noch diese letzten 3 Probleme, dann seid ihr mich los, versprochen !
1) Ich habe ein Sheet ("2002"). Mein Makro besteht aus 3 Teilen:
a) automatisches Setzen des Cursors auf die Zelle mit dem aktuellen Datum im 2002er Sheet.
b) Funktion: Feststellen der Feiertage im nächsten Jahr.
c) Private Sub: neues Sheet ("2003") erstellen + Feiertage eintragen, die in b) errechnet wurden.
Bisherige Arbeitsweise:
um das Makro auszuführen, hatte ich ein CommandButton ins 2002er Sheet eingebaut. Nachdem dadurch das neue Sheet erstellt wurde, habe ich auch den Command Button mit rein kopiert ins neue Sheet.
Das ist aber doof. Denn wenn wir im Jahre 2003 sind und man ein Sheet für 2004 erstellen will, muss ich ja den Button von 2002 nach 2003 mit kopieren, samt seinem Quellcode.
Jetzt hat mir einer geraten, stattdessen ein Menüpunkt zu erstellen dass das Makro ausführt.
PROBLEM: Man kann dem Menüpunkt nur ein Makro zuweisen. Mein Makro besteht aber aus DREI Bestandteilen: 2 Module (Funktionen) und eine Private Sub, die vom User per Klick ausgelöst werden soll.
Hab alle 3 Teile in ein Code zusammengefasst und diesen einen Code dem Menüpunkt zugewiesen. Aber er führte dann lediglich die 1. Funktion aus.
Wie kann ich das lösen?
2.)
Ich habe in Sheet 2002 eine Gruppierung: in Spalte A stehen die Wochentage drin. Die Gruppierung "versteckt" auf Wunsch die Wochenendtage.
Der Inhalt wird aus dem Sheet 2002 ins neu erstellte 2003 kopiert. (mit Gruppierung)
Die Gruppierung wird dann in 2003 aufgehoben, weil ja im nächsten Jahr die Wochenendtage in anderen Zeilen stehen als in 2002. Nachdem das Datum und die Wochentage in 2003 eingetragen wurden, beginnt das Sheet 2003 seine eigene Gruppierung:
'Zeilen der Wochenendtage ausblenden durch Gruppierung (in neuem Sheet)
For intzeile = 2 To 366
If Sheets(CStr(nextjahr)).Cells(intzeile, 1).Value = "SA" Or Sheets(CStr(nextjahr)).Cells(intzeile, 1).Value = "SO" Then
Sheets(CStr(nextjahr)).Rows(intzeile).Group
Sheets(CStr(nextjahr)).Outline.ShowLevels RowLevels:=1
Else
End If
Next
PROBLEM:
Er gruppiert hier ein Tag zu viel! Undzwar den Montag ("MO").
Das problem könnte darin liegen, daß er die Gruppierung im 2002er Sheet gar nicht aufhebt.
Ich sage da nämlich:
jahr = year(now)
Sheets(CStr(jahr)).Outline.ShowLevels RowLevels:=2
Die Gruppierung wird damit vielleicht nicht wirklich aufgehoben, aber den Ungroup-Befehl akzeptiert er nicht !
Wie kann man das hinkriegen?
Das 3. Problem kommt später, vielleicht erübrigt es sich nach Lösungen zu den 2 Problemen.
Danke schonmal für jede Hilfe !