Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
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
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

3 Wünsche auf einmal (VBA)

3 Wünsche auf einmal (VBA)
20.12.2002 11:58:16
Ernesto Cem Guevara
Hallo,

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 !

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
3 auf einmal? Das geht nun wirklich nicht ;o)
20.12.2002 12:13:57
Marko
1.)
Der Knopf löst doch auch nur ein Sub aus. Also dieses Sub (entsprechend umbenannt) in ein Modul der Exceldatei und es von dort aus mit einem Menüpunkt verbinden.

2.) Die ist die Sachlage zu schwer nachzuvollziehen, ohne es zu sehen. Ob noch alte Gruppierungen vorhanden sind, sieht man doch oder? Ansonsten einfach zuvor unschön 'mit Gewalt' ungruppieren.

On Error Resume Next
Tabelle_Name.Range("1:65535").Ungroup
Tabelle_Name.Range("1:65535").Ungroup
Tabelle_Name.Range("A:IU").Ungroup
Tabelle_Name.Range("A:IU").Ungroup
On Error GoTo 0

Es empfiehlt sich für sowas auch immer der Testmodus um mal ein paar Zeilen 'Live' zu verfolgen. Da sieht man oft schnell den Fehler.

Ciao,
Marko

Anzeige
Re: 3 auf einmal? Das geht nun wirklich nicht ;o)
20.12.2002 12:25:46
Ernesto Cem Guevara
Nee junger Mann,

die Ungroup-Befehle mag er nicht! "1004 bla Select-Methode" sagt er da.
Auch vorher mochte er dieses Ungroup nicht. Hat wohl ne Allergie oder so.

Was soll ich nu machen?

Sheets(Cstr(jahr)).Allergie = False ??

Ich verzweifle hier !

Re: 3 Wünsche auf einmal (VBA)
20.12.2002 13:20:21
Udo RiHü
Hallo,
du kannst den Ostersonntag mit einer Function ermitteln.

Die übrigen Feiertage sind ja nicht beweglich und sollten einfach zu ermitteln sein.

Gruss aus'm Pott
Udo

Re: 3 Wünsche auf einmal (VBA)
20.12.2002 13:37:53
Ernesto Cem Guevara
Danke aber die Formel dafür habe ich schon !

Das Feststellen der Feiertage ist nicht das Problem, sondern das Eintragen in die richtige Zelle, was durch die fehlerhafte Gruppierung falsch ausgeführt wird.

Trotzdem danke

Anzeige
Re: Versuchs mal mit ClearOutline!
20.12.2002 13:39:40
Marko
Ansonsten ist es wohl DAS leidige VBA-Fokus-Problem, d.h. das irgendein anderes Objekt den Focus z.Z. hat. Daher vor Formatierungen,Gruppierungen immer erst das Tabellenobjekt und dann das zu behandelnde Objekt 'activaten'.

Marko

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige