2.4k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Mahlzeit!

Besteht die Möglichkeit innerhalb einer bestimmten Gliederungsebene z. B. eine explizite Spalte per VBA anzusprechen?

Beispiel:
Auf der Gliederungsebene 1 sind die Spalte C bis F und M bis P gruppiert.
Nunmehr möchte ich nur die Spalte M bis P gruppieren.

Die Variante ein-/ausblenden kommt dabei nicht in Frage.

Ciao

Tom

7 Antworten

0 Punkte
Beantwortet von
Hi Tom

Hab leider keine Zeit mehr zum Testen. Die Gliederungsebenen spricht man normalerweise mit .Outlinelevel an. Z.B.

Columns("C:F").Outlinelevel=0

Gruß Mr. K.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo K.!

Danke, dass Du Dich meiner Fragestellung angenommen hast, allerdings funktioniert der Code nicht ganz so wie gewünscht.

Columns("C:F").OutlineLevel = 1 entfernt die Gruppierung im Bereich, jedoch wir der Bereich nicht ausgeblendet/gruppiert.
Im Gegensatz dazu erstellt Columns("C:F").OutlineLevel = 2 die Gruppierung wieder, aber der Bereich wird nicht eingeblendet bzw. die Gruppierung nicht aufgehoben.

Columns("C:F").Outlinelevel=0 liefert überhaupt eine Fehlermeldung.

siehe Muster
www.file-upload.net/download-9878518/Gruppierung_Muster01.xls.html

Ciao

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

schau dir das mal an: KLICK MICH!

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo Tom,

da hab ich mich um eine Ebene vertan. Das passiert wenn man keine Zeit zum Prüfen hat. Ich nahm an 0 wäre die oberste Ebene.

Deine Fragestellung war nicht eindeutig. Du schreibst die Variante ein-/ausblenden kommt nicht in Frage. Eine Alternative hat dir M.O. aufgezeigt. Jedoch ist das Anklicken von + bzw. - Schaltflächen innerhalb einer Gruppe auch durch Ein-/Ausblenden der zu der Gruppe gehörigen Spalten simulierbar:

Columns("M:P").OutlineLevel = 2
Columns("M:P").Hidden = True oder False

Stell doch bitte nochmal dar, was dein eigentliches Problem ist.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo zusammen!

Ich habe nochmals ein Muster unter www.file-upload.net/download-9884885/Gruppierung_Muster02.xls.html abgelegt.

Das ein-/ausblenden (hidden-Funktion) soll soweit möglich dabei nicht verwendet werden.
Präferiert wird eine Gruppierungs-Lösung (+/- Schaltflächen).

Wenn ich dem Posting*) lt. M.O. folge, so ist dies gar nicht möglich.
*) Bei einzelnen Gruppen wird's schwieriger, weil es keine VBA-Methode gibt.

Schönes Wochenende!

Tom
0 Punkte
Beantwortet von
Hallo Tom,

Sorry, dass ich mich jetzt erst melde.
Was hast du gegen Hidden? Wie ich bereits in Antwort 4 schrieb, ist das Gruppieren einzelner Gruppen sehr wohl möglich. Hier der code für dein Beispiel:

Sub Test_1()
Columns("C:D").Hidden = True
Columns("A:B").Hidden = False
Columns("G:Z").Hidden = False
End Sub


Sub Test_2()
Columns("G:H").Hidden = True
Columns("A:F").Hidden = False
Columns("I:Z").Hidden = False
End Sub


Da die Spalten C:D und G:H bereits jeweils einer Gruppe der Ebene 2 angehören, wird durch Hidden die Gruppierung ausgelöst (- wird zu +) und nicht die Spalten an sich ausgeblendet.

Wenn du jedoch darauf abzielst, dass ein Code ausgeführt werden soll, sobald eine + bzw. - Schaltfläche gedrückt wird, dann ist dies tatsächlich nicht möglich.

Mr. K.
0 Punkte
Beantwortet von
Wenn du eine ganze Reihe von Spalten hast und nur jeweils 2 anzeigen willst, dann den Code natürlich umgekehrt verwenden.

z.B.
Columns("C:D").Hidden=false
Columns("A:B").Hidden=true
columns("E:Z").Hidden=true

Mr. K.
...