shadow-tsw

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

114757
114757 16.04.2015 aktualisiert um 13:47:38 Uhr
Goto Top
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
shadow-tsw
shadow-tsw 16.04.2015 um 14:18:53 Uhr
Goto Top
Vorher 1
http://www.directupload.net/file/d/3959/6e6nc98g_jpg.htm

Nachher 1
http://www.directupload.net/file/d/3959/pz8kictf_jpg.htm

Vorher 2
http://www.directupload.net/file/d/3959/crztyvmu_jpg.htm

Nachher 2
http://www.directupload.net/file/d/3959/slnpscvh_jpg.htm

Das finale Ergebnis nach Ausführung sollte immer das letzte Bild ergeben, 3 Spalten sichtbar, alle was danach kommt gruppiert und ausgeblendet face-smile
114757
114757 16.04.2015 aktualisiert um 14:40:49 Uhr
Goto Top
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.
shadow-tsw
shadow-tsw 16.04.2015 um 14:46:18 Uhr
Goto Top
Hi Jodel,

das hast du korrekt beobachtet. 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 ^^.

P.S: Das mit den externen Bildern tut mir leid, aber ich finde hier keinen Reiter mit "Bilder".

Grüße
shadow-tsw
114757
114757 16.04.2015 um 14:48:24 Uhr
Goto Top
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 ...
colinardo
colinardo 16.04.2015 aktualisiert um 15:12:26 Uhr
Goto Top
Moin zusammen,
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:
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
Grüße Uwe
shadow-tsw
shadow-tsw 16.04.2015 um 15:02:28 Uhr
Goto Top
Sehr sehr geil ! Vielen Dank Uwe !
Wie lautet denn der Befehl zum gleichzeitigen ausblenden ? Dann wäre es perfekt face-smile


^^
colinardo
colinardo 16.04.2015 um 15:12:45 Uhr
Goto Top
Zitat von @shadow-tsw:
Wie lautet denn der Befehl zum gleichzeitigen ausblenden ? Dann wäre es perfekt face-smile
Ist oben ergänzt ...
shadow-tsw
shadow-tsw 16.04.2015 aktualisiert um 15:46:09 Uhr
Goto Top
Das Makro alleine funktioniert so wie es soll (vorausgesetzt, es sind mehr als 3 Spalten mit Inhalt da, sonst wurschtelt er alle bis auf Spalte F weg). Hierfür schon mal vielen Dank.

Ist es noch möglich vorher zu prüfen, ob die Voraussetzung 5 Spalten gegeben ist ? Damit nur die letzten beiden gruppiert und ausgeblendet werden ? sonst sieht das so aus wie auf dem Bild... (wenn ich es denn eingefügt bekomme :D )

d693129c3b81a5122da9dd40cdf971b5
colinardo
Lösung colinardo 16.04.2015, aktualisiert am 17.04.2015 um 10:09:55 Uhr
Goto Top
Sorry, musste gerade mal weg face-wink
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
shadow-tsw
shadow-tsw 17.04.2015 um 10:04:08 Uhr
Goto Top
Ich danke vielmals, funktioniert wie gewünscht face-smile

Ich lade dich gedanklich auf einen Drink ein ^^

Grüße
shadow-tsw