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

Per VBA alle Gruppierungen einer Datei schließen

Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:01:00
Melanie
Hallo VBA-Profis,
ich habe folgende Frage; ich würde gerne in einer Datei per VBA in allen Tabellenblättern prüfen lassen, ob es Gruppierungen gibt und diese dann ggf. schließen lassen, sprich, dass sie ganz zugeklappt sind. Es soll also eine Schleife durch alle Tabellenblätter laufen und das prüfen bzw. tun.
Die Anzahl der Tabellenblätter kann dabei variieren und es sind nicht in jedem Blatt zwingend Gruppierungen vorhanden. Die Anzahl der Stufen der Gruppierungen kann ebenfalls variieren.
Wer kann mir hier helfen?
Im Voraus besten Dank!
Grüße, Melanie

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:11:00
Melanie
Hallo Melanie,
ich glaub dieses Makro dürfte die weiterhelfen
Einfach in ein Modul einfügen und ggf. mit einem Button verbinden
Viele Grüße
Hendryk

Sub Gruppierung_zuklappen()
Dim wks As Worksheet
For Each wks In Application.Worksheets
If InStr(wks.Name, 1) Then
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
wks.Outline.ShowLevels RowLevels:=1
End If
Next wks
End Sub


und das Pendant dazu


Sub Gruppierung_aufklappen()
Dim wks As Worksheet
For Each wks In Application.Worksheets
If InStr(wks.Name, 1) Then
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=5
wks.Outline.ShowLevels RowLevels:=2
wks.Outline.ShowLevels RowLevels:=3
End If
Next wks
End Sub


Anzeige
AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:18:06
Melanie
Hi Hendryk,
erst mal Danke für Deine Hilfe, ich hab das direkt mal ausprobiert, aber leider passiert nichts :o(

AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:25:00
Melanie
Hallo Melanie,
setz einfach mal vor den Tabellenblattnamen eine 1. (so: 1_tabelle1). Das makro steuert dann jede seite an, die mit 1 beginnt.
Viele Grüße
Hendryk

AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:29:27
Melanie
Jetzt klappt es, nur sollte ich den Namen natürlich frei wählen können. Es ist eine Aufgabe, die regelmäßig gemacht werden muss und ich würde ungern vorher alle Tabellenblätter umbennen müssen...
Gibts da ne Möglichkeit?

AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:32:51
Melanie
Hi Hendryk,
ich habs hingekriegt, so läuft es:

Sub Gruppierung_zuklappen()
Dim wks As Worksheet
For Each wks In Application.Worksheets
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
wks.Outline.ShowLevels RowLevels:=1
Next wks
End Sub


Vielen lieben Dank für Deíne Hilfe!!
Grüße, Melanie

Anzeige
AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:34:00
Melanie
Super, sonst hätt ich mich jetzt beigemacht und dir das etwas umgeschrieben.
Viele Grüße
Hendryk

Blattschutz?
17.10.2007 10:56:12
Melanie
Mir ist gerade noch was aufgefallen, es kann sein, dass die Tabellenblätter geschützt sind. Es sollte also bei jedem Blatt geprüft werden, ob es geschützt ist und wenn ja der Blattschutz aufgehoben werden und anschließend wieder reingesetzt werden. Ich hab das mal versucht aufzusetzen, aber wie ihr seht fang ich mit VBA gerade erst an...

Sub Gruppierung_zuklappen_2()
Dim wks As Worksheet
For Each wks In Application.Worksheets
If ActiveSheet.Protect = True Then
ActiveSheet.Unprotect
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
wks.Outline.ShowLevels RowLevels:=1
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
wks.Outline.ShowLevels RowLevels:=1
End If
Next wks
End Sub


Anzeige
AW: Blattschutz?
17.10.2007 11:11:30
Josef
Hallo Melanie,
auf die Abfrage kannst du verzichten.
Sub Gruppierung()
Dim objWS As Worksheet
Dim blnProtect As Boolean

For Each objWS In ThisWorkbook.Worksheets
    With objWS
        blnProtect = .ProtectContents
        .Unprotect
        .Outline.ShowLevels 1, 1
        If blnProtect Then .Protect
    End With
Next

End Sub

Gruß Sepp

Anzeige
Danke!
17.10.2007 11:21:00
Melanie
Funktioniert! Vielen Dank!

AW: Per VBA alle Gruppierungen einer Datei schließen
17.10.2007 10:41:31
Josef
Hallo Melanie,
das sollte es tun.
Sub Gruppierung()
Dim objWs As Worksheet

For Each objWs In ThisWorkbook.Worksheets
    objWs.Outline.ShowLevels 1, 1
Next

End Sub

Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge