Mit VBA: Spalten automatisch gruppieren und ausblenden
Huhu schönen guten Tag,
ich bräuchte mal ein wenig Unterstützung:
Ich habe eine Tabelle in der täglich Spalten ab z.B. Spalte-F hinzugefügt werden (links neu, rechts alt). In Spalte F-Spalte beliebig(x) stehen Daten, die aktuell nicht gebraucht werden und die ich gerne gruppieren und ausblenden würde. Dieser Vorgang wird mehrmals wiederholt, somit ist eine händerische Arbeit auch für meine Nicht-Excel-Crack-Kollegen eher umständlich und ich möchte das per Button lösen.
Es sollen automatisch alle Spalten rechts von Spalte F mit Inhalt gruppiert und ausgeblendet werden.
Ich habe viele Formeln gefunden, aber die behandeln entweder Zeilen mit bestimmten Werten oder völligst andere Vorraussetzungen.
Ich möchte mich schon vorab für jede Hilfe bedanken.
Grüße
shadow-tsw
ich bräuchte mal ein wenig Unterstützung:
Ich habe eine Tabelle in der täglich Spalten ab z.B. Spalte-F hinzugefügt werden (links neu, rechts alt). In Spalte F-Spalte beliebig(x) stehen Daten, die aktuell nicht gebraucht werden und die ich gerne gruppieren und ausblenden würde. Dieser Vorgang wird mehrmals wiederholt, somit ist eine händerische Arbeit auch für meine Nicht-Excel-Crack-Kollegen eher umständlich und ich möchte das per Button lösen.
Es sollen automatisch alle Spalten rechts von Spalte F mit Inhalt gruppiert und ausgeblendet werden.
Ich habe viele Formeln gefunden, aber die behandeln entweder Zeilen mit bestimmten Werten oder völligst andere Vorraussetzungen.
Ich möchte mich schon vorab für jede Hilfe bedanken.
Grüße
shadow-tsw
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 269335
Url: https://administrator.de/forum/mit-vba-spalten-automatisch-gruppieren-und-ausblenden-269335.html
Ausgedruckt am: 25.04.2025 um 08:04 Uhr
11 Kommentare
Neuester Kommentar

Moin shadow-tsw,
zeig doch mal einen Screenshot deiner Tabelle (vorher > nachher) oder mach uns dein Vorhaben mit den Formatierungsanweisungen des Forums etwas verständlicher. Du weißt ja, bei VBA kommt es auf kleinste Details an!
Gruß jodel32
zeig doch mal einen Screenshot deiner Tabelle (vorher > nachher) oder mach uns dein Vorhaben mit den Formatierungsanweisungen des Forums etwas verständlicher. Du weißt ja, bei VBA kommt es auf kleinste Details an!
Gruß jodel32

hmmm in deinem ersten Beispiel ist TL immer noch doppelt vorhanden ??
Gruppieren lassen sich gleiche Werte eigentlich nur wenn sie alle nebeneinander stehen.
p.s. Wie du Bilder deinem Beitrag hinzufügst, kannst du in der Formatierungs-FAQ nachlesen. Bitte keine externen Bilder verlinken. Danke.
Gruppieren lassen sich gleiche Werte eigentlich nur wenn sie alle nebeneinander stehen.
p.s. Wie du Bilder deinem Beitrag hinzufügst, kannst du in der Formatierungs-FAQ nachlesen. Bitte keine externen Bilder verlinken. Danke.

Zitat von @shadow-tsw:
P.S: Das mit den externen Bildern tut mir leid, aber ich finde hier keinen Reiter mit "Bilder".
Doch, wenn du deinen Ursprungsbeitrag bearbeitest kannst du Bilder hochladen, den Code kannst du dann in jedem Kommantar einfügen! Steht doch in der Anleitung ...P.S: Das mit den externen Bildern tut mir leid, aber ich finde hier keinen Reiter mit "Bilder".
Moin zusammen,
Grüße Uwe
Aber darum geht es nicht. Der Inhalt ist rein theoretisch egal. Die Spaltenanordnung geht von links nach rechts, von neu(links) nach alt(rechts).
Ich möchte nur die drei aktuellsten Spalten sehen, der Rest soll weg ^^.
kein Problem, das ist schnell gemacht:Ich möchte nur die drei aktuellsten Spalten sehen, der Rest soll weg ^^.
Sub Group_Columns()
With ActiveSheet
.Range(.Range("F6").Offset(0, 3), .Range("F6").End(xlToRight)).Columns.Group
.Outline.ShowLevels ColumnLevels:=1
End With
End Sub
Zitat von @shadow-tsw:
Wie lautet denn der Befehl zum gleichzeitigen ausblenden ? Dann wäre es perfekt
Ist oben ergänzt ...Wie lautet denn der Befehl zum gleichzeitigen ausblenden ? Dann wäre es perfekt
Sorry, musste gerade mal weg 
Folgendes funktioniert auch bei erneuter Anwendung.
Folgendes funktioniert auch bei erneuter Anwendung.
Sub Group_Columns()
On Error Resume Next
Dim rngGroup As Range, rngStart As Range, rngEnd As Range
With ActiveSheet
.Outline.ShowLevels ColumnLevels:=2
Set rngStart = .Range("F6")
Set rngEnd = .Cells(rngStart.Row, Columns.Count).End(xlToLeft)
If .Range(rngStart, rngEnd).Columns.Count > 3 Then
Set rngGroup = .Range(rngStart.Offset(0, 3), rngEnd).EntireColumn
rngGroup.Ungroup
rngGroup.Group
.Outline.ShowLevels ColumnLevels:=1
End If
End With
End Sub