Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveSheet.enableOutlining = true

Forumthread: ActiveSheet.enableOutlining = true

ActiveSheet.enableOutlining = true
08.06.2005 12:57:23
BeZu
Hallo zusammen,
ich habe nachstehendes Makro, das alle Tabellenblätter schützt.

Sub PasswortAufAllenTabellenblättersetzen()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Worksheets.Count
Sheets(i).Protect ("passwort")
Next i
ActiveWindow.SmallScroll Down:=-100
End Sub

Damit ist aber leider auch die Gruppierung von Zeilen geschützt. Jetzt habe ich zwar die dazugehörigen Syntax/Befehle
"unserinterfaceonly:=true" und
"ActiveSheet.enableOutlining = true"
im Forum gefunden, kann diese aber nicht so einbauen, das das Makro funktioniert. Wie muss der Code aufgebaut sein, damit trotz Blattschutz die Gruppierung der Zellen (das pluszeichen am Rand)vom User aktiviert werden kann.
Danke vorab
Bernd
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.enableOutlining = true
08.06.2005 13:02:18
Fred

Sub PasswortAufAllenTabellenblättersetzen()
Dim i As Integer
For i = 1 To Worksheets.Count
With Sheets(i)
.Unprotect Password:="password"
.EnableOutlining = True
.Protect Password:="password", UserInterfaceOnly:=True
End With
Next
ActiveWindow.SmallScroll Down:=-100
End Sub

mfg Fred
Anzeige
AW: ActiveSheet.enableOutlining = true
08.06.2005 13:58:22
Bernd
Hi Fred,
vielen Dank für deine Unterstützung. Dein Makro läuft zwar, hat nur einen Haken:
Wenn ich die Datei mit Blattschutz schließe und dann wieder öffne, läßt sich das Outlinig nach wie vor nicht aktivieren.
Wenn ich aber dann in die Makro-Entwicklungsoberfläche wechsle und das Protect-Makro manuell ausführe. dann lassen sich die Zeilen totz nach wie vor bestehendem Blattschutz wie gewünscht ein- und ausblenden.
Der Wechsel sollte in VBA sollte aber nicht notwendig werden. Weisst du Rat und willst du mir noch ein Mal helfen?
Danke
Bernd
Anzeige
Nachtrag an Fred
08.06.2005 14:06:22
bernd
Hi Fred,
habe mich zwischenzeitlich (hoffe und harre deiner Antwort) damit behofen, dass ich nachstehenden Call eingebaut habe, der beim Öffnen der Mappe das Protect-Makro automtisch startet.

Private Sub workbook_open()
Call PasswortAufAllenTabellenblättersetzen
End Sub

Dann muss ich wenigsten nicht manuell in der Enticklungsumgebung das Makro starten. Jetzt ist auch das Blatt geschützt und trotz outlining möglich. Aber eine saubere Lösung ist das doch nicht, oder?
Grüße
bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 14:08:05
Fred
Hi,
was soll da nicht sauber sein? Die Gliederung muss natürlich schon bestehen, nachträglich
kann sie bei Schutz nicht angelegt werden.
mfg Fred
AW: Nachtrag an Fred
08.06.2005 16:32:26
bernd
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei shcließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:32:33
bernd
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei shcließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:32:50
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:32:51
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:32:52
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:33:00
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:33:07
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:33:26
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: Nachtrag an Fred
08.06.2005 16:33:27
BeZu
Hi Fred,
wie beschrieben. Die Gliederung/Gruppierung der Zeilen besteht natürlich schon. Wenn ich die Datei schließe und dann wieder öffne, kann die Gliederung nicht geöffnet werden. Erst - und nur dann - , wenn ich das Protect-Makro anstoße. Dann ist weitherin geschuetzt und die Gliederung nunmehr möglich.
Wie gesagt habe ich das manuelle anklicken des Makro mit meinem workbook_open umgangen. Ich dachte halt, dass das nicht die finale Lösung sein kann.
Priat schicke ich dir die Datei gerne zu, wenn du interesse hast. Dann kannst du es mal selber ausprobieren.
Grüße und Danke
Bernd
Anzeige
AW: ActiveSheet.enableOutlining = true
08.06.2005 13:04:31
Hajo_Zi
Hallo Bernd
With Sheets(i)
.Protect UserInterfaceOnly:=True, Password:="Passwort"
.EnableOutlining = True ‚ Für Gliederung
.EnableAutoFilter = True ‚ Für AutoFilter
End With
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: ActiveSheet.enableOutlining = true
08.06.2005 13:50:49
bernd
Hi Hajo
danke dir für deine Antwort. Ich habe deinen Tipp wie nachstehend eingebaut. Leider kmmt immer Fehler "Syntax bei Komilieren".

Sub PasswortAufAllenTabellenblättersetzen()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Worksheets.Count
With Sheets(i)
.Protect UserInterfaceOnly:=True, Password:="passwort"
.EnableOutlining = True ‚ Für Gliederung
.EnableAutoFilter = True ‚ Für AutoFilter
End With
Sheets(i).Protect ("passwort")
Next i
ActiveWindow.SmallScroll Down:=-100
End Sub

Sicher weisst du, was ich für einen Fehler gemacht habe.
Danke vorab
bernd
Anzeige
;
Anzeige

Infobox / Tutorial

ActiveSheet.enableOutlining für Blattschutz in Excel


Schritt-für-Schritt-Anleitung

Um die Gruppierung von Zeilen (Outlining) in Excel zu ermöglichen, während das Blattschutz-Makro aktiv ist, kannst du folgenden VBA-Code verwenden:

Sub PasswortAufAllenTabellenblättersetzen()
    Application.ScreenUpdating = False
    Dim i As Integer
    For i = 1 To Worksheets.Count
        With Sheets(i)
            .Unprotect Password:="passwort"
            .EnableOutlining = True
            .Protect Password:="passwort", UserInterfaceOnly:=True
        End With
    Next i
    ActiveWindow.SmallScroll Down:=-100
End Sub

Dieser Code schützt alle Arbeitsblätter, erlaubt jedoch das Aktivieren der Gruppierung (Outlining) durch die Verwendung von UserInterfaceOnly:=True. Achte darauf, dass du das Passwort anpasst.


Häufige Fehler und Lösungen

  1. Syntaxfehler beim Kompilieren:

    • Stelle sicher, dass du im Code keine unerwünschten Zeichen oder Kommentare im Code hast, die die Ausführung stören könnten.
  2. Outlining funktioniert nach Öffnen der Datei nicht:

    • Wenn du das Workbook schließt und erneut öffnest, kannst du das Problem umgehen, indem du den folgenden Code im ThisWorkbook-Modul verwendest:
    Private Sub Workbook_Open()
       Call PasswortAufAllenTabellenblättersetzen
    End Sub
  3. EnableOutlining wird nicht akzeptiert:

    • Stelle sicher, dass die Zeilen zuerst entgruppiert sind, bevor du den Befehl EnableOutlining ausführst.

Alternative Methoden

Eine alternative Möglichkeit besteht darin, die DasProtect-Methode zu verwenden, die dem gleichen Zweck dient. Du kannst die folgenden Zeilen am Ende deines VBA-Codes hinzufügen:

Sheets(i).Protect ("passwort")

Diese Methode wird oft als zusätzliche Sicherheit verwendet, um die Arbeitsblätter zu schützen, während den Benutzern trotzdem das Arbeiten mit der Gruppierung ermöglicht wird.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du den Code in einem realen Szenario verwenden könntest:

  • Erstelle ein Excel-Dokument mit mehreren Tabellenblättern.
  • Füge den oben genannten VBA-Code in das Modul ein.
  • Teste den Code, indem du das Arbeitsblatt öffnest und die Gruppierungsfunktionen verwendest.

Stelle sicher, dass du das Passwort entsprechend anpasst, um unbefugten Zugriff zu vermeiden.


Tipps für Profis

  • Verwende UserInterfaceOnly: Diese Option erlaubt es, dass VBA-Skripte weiterhin auf geschützten Blättern arbeiten, während Benutzer die Benutzeroberfläche verwenden können.
  • Dokumentation: Füge Kommentare in deinen Code ein, um später nachvollziehen zu können, was jeder Abschnitt bewirken soll.
  • Teste den Code regelmäßig: Vor allem nach Änderungen in der Struktur deiner Arbeitsblätter oder nach Updates von Excel-Versionen.

FAQ: Häufige Fragen

1. Warum funktioniert das Outlining nicht, wenn ich die Datei schließe und öffne?
Das liegt daran, dass der Blattschutz beim Schließen der Datei nicht automatisch neu gesetzt wird. Stelle sicher, dass du den Workbook_Open-Ereignis-Handler verwendest.

2. Was bedeutet UserInterfaceOnly?
Diese Option ermöglicht es, dass VBA-Codes auf geschützten Blättern ausgeführt werden können, während die Benutzeroberfläche weiterhin interaktiv bleibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige