shadow-tsw
Goto Top

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

Content-Key: 269335

Url: https://administrator.de/contentid/269335

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Apr 16, 2015 updated at 11:47:38 (UTC)
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
Member: shadow-tsw
shadow-tsw Apr 16, 2015 at 12:18:53 (UTC)
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
Mitglied: 114757
114757 Apr 16, 2015 updated at 12:40:49 (UTC)
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.
Member: shadow-tsw
shadow-tsw Apr 16, 2015 at 12:46:18 (UTC)
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
Mitglied: 114757
114757 Apr 16, 2015 at 12:48:24 (UTC)
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 ...
Member: colinardo
colinardo Apr 16, 2015 updated at 13:12:26 (UTC)
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
Member: shadow-tsw
shadow-tsw Apr 16, 2015 at 13:02:28 (UTC)
Goto Top
Sehr sehr geil ! Vielen Dank Uwe !
Wie lautet denn der Befehl zum gleichzeitigen ausblenden ? Dann wäre es perfekt face-smile


^^
Member: colinardo
colinardo Apr 16, 2015 at 13:12:45 (UTC)
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 ...
Member: shadow-tsw
shadow-tsw Apr 16, 2015 updated at 13:46:09 (UTC)
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
Member: colinardo
Solution colinardo Apr 16, 2015, updated at Apr 17, 2015 at 08:09:55 (UTC)
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
Member: shadow-tsw
shadow-tsw Apr 17, 2015 at 08:04:08 (UTC)
Goto Top
Ich danke vielmals, funktioniert wie gewünscht face-smile

Ich lade dich gedanklich auf einen Drink ein ^^

Grüße
shadow-tsw