Anzeige
Archiv - Navigation
1248to1252
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
trotz Schutz zellen einblenden und gliederung
Florian
Hallo,
ich habe folgendes Problem:
In meinem Sheet "Eingabe" wollte ich gern den Blattschutz anwenden und trotzdem die Gliederungsfunktion nutzen. Darum habe ich mit Hilfe der Suchfunktion hier im Forum diesen Code mir nun erlesen und erstellt:
Private Sub Workbook_Open()
With Sheets("Eingabe")
.Protect Contents:=True, userinterfaceonly:=True
.EnableOutlining = True
End With
End Sub
Gliederung funktioniert super, nur gibts noch ein Problem!
Da ich viele Zeilen aus- und einblende, wenn z.b. eine ComboBox mit einem bestimmten Ergebnis ausgewählt wird, mekert der Debugger, dass das nicht möglich ist, weil das Blatt geschützt ist.
Bevor ich die Suche hier im Form nach "Gliederung + Blattschutz" begonnen hatte, stellte ich beim Blattschutz (manuell) immer ein: "Zeilen einfügen erlauben". Damit war das kein Problem, per ComboBox-Auswahl Zellen ein- oder auszublenden.
Nachdem ich aber nun den obigen Code wieder gelöscht hatte, lässt sich der Schutz nicht mehr aufheben (auch wenn ich ihn manuell aufhebe, kommt die Fehlermeldung, sobald eine ComboBox eine Zelle ein- ausblenden will, es sei ein Blattschutz vorhanden)!!!
!!! HILFE !!!
Wie bekomme ich jeglichen Schutz wieder raus (obwohl der Schutz laut Menü: "Überprüfen"->"Änderungen"->"Blatt schützen" nicht aktiv ist), bzw. wie bekomme ich es hin, dass das Sheet geschützt ist, aber trotzdem "Gliederungsfunktion" und "Zeilen einfügen" erlaubt ist?!?
Tausend Dank allen Helfern vorab!
Gruß, Flo
AW: trotz Schutz zellen einblenden und gliederung
13.02.2012 14:16:06
Florian
So... jetzt hab ich einen Code gefunden, mit dem ich zumindest den Schutz aufheben kann (obwohl, wie vorher schon beschrieben, kein Schutz aktiv ist!):
Sub Schutz_Entfernen()
For Each objWs In ThisWorkbook.Worksheets
objWs.UnProtect
Next
End Sub
Aber wie kriegt man "Zeilen einfügen erlauben" in den vorher genannten Code mit rein?

Private Sub Workbook_Open()
With Sheets("Eingabe")
.Protect Contents:=True, userinterfaceonly:=True
.EnableOutlining = True
End With
End Sub
?
AW: trotz Schutz zellen einblenden und gliederung
13.02.2012 15:15:41
Oberschlumpf
Hi Florian
Was spricht denn dagegen, ...
... wenn du vor jedem Zeilen einfügen/löschen/aus-einblenden per VBA den Blattschutz de-aktivierst, und wenn Zeilenmanipulation erfolgt, dann per VBA den Blattschutz wieder aktivierst?
Es würde ja reichen, wenn du eine Sub schreibst, die einen Parameter erwartet. Mit dem Parameter "sagst" du dann dem Makro, ob de- oder aktiv.
Ciao
Thorsten
Anzeige
AW: trotz Schutz zellen einblenden und gliederung
13.02.2012 15:21:45
Florian
Hi Thorsten...
das ist richtig... ich hab das so auch schon einmal bei einer anderen Datei gemacht, um alle Leerzeilen auszublenden, bevor eine PDF erstellt wird.
Hab das mit so ner Art Dual-System gemacht und immer rechts neben die Felder 1 oder 0 per wenn-Formel gesetzt, damit dann VBA entsprechnd alle Zeilen mit 1 in Reihe X ausblendet...
Da könnte man in Kombination noch den Schutz jedes Mal weg und wieder hinzu nehmen..!
Ich dachte nur, es gibt einfach auch einen VBA Befehl für "Zeilen einfügen" oder "Zeilen formatieren" erlauben, wie in der manuellen Auswahl "Blatt schützen"?!
Das wäre bei so vielen Daten erheblich leichter und zeitlich nicht so intensiv!!!
Gruß°
Anzeige
AW: trotz Schutz zellen einblenden und gliederung
14.02.2012 09:11:50
fcs
Hallo Florian,
die verschiedenen Optionen, die manuell gesetzt werden können, kann man auch per Makro setzen.
Ein eingerichteter Autofilter oder eine eingerichtete Gliederung müssen aber zusätzlich aktiviert werden, was nur per Makro möglich ist.
Gruß
Franz
Beispiel:
Sub Blattschutz_Ein()
Dim wks As Worksheet
Set wks = ActiveSheet
wks.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True, AllowInsertingRows:=True, AllowSorting:=False _
, AllowFiltering:=True, userinterfaceonly:=True
wks.EnableOutlining = True
wks.EnableAutoFilter = True
End Sub
Sub Blattschutz_Aus()
Dim wks As Worksheet
Set wks = ActiveSheet
wks.Unprotect
End Sub

Anzeige
AW: trotz Schutz zellen einblenden und gliederung
14.02.2012 09:14:50
Florian
Super Franz, das war genau das, wonach ich gesucht habe!!!
Also kann ich für das Gruppieren "EnableOutlining = True" verwenden, und für Zeilen einfügen "AllowInsertingRows:=True" ... sehr gut!
Besten Dank und viele Grüße, Florian
AW: trotz Schutz zellen einblenden und gliederung
14.02.2012 11:31:40
Florian
Noch eine Frage:
Wie kann ich das ganze noch mit einem Password versehen?
Wenn ich meine Datei mit folgendem Code öffne, reicht nur ein Klick auf "Blattschutz aufheben" und es kommt keine Passwortabfrage:
Private Sub Workbook_Open()
With Sheets("Eingabe")
.Protect Password:=123, UserInterfaceOnly:=True
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True,  _
AllowInsertingRows:=True
.EnableOutlining = True
End With
With Sheets("Vollkosten")
.Protect Password:=123, UserInterfaceOnly:=True
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True,  _
AllowInsertingRows:=True
.EnableOutlining = True
.Rows("1:393").EntireRow.Hidden = False
End With
With Sheets("Vollkosten (nur fix)")
.Protect Password:=123, UserInterfaceOnly:=True
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True,  _
AllowInsertingRows:=True
.EnableOutlining = True
.Rows("1:393").EntireRow.Hidden = False
End With
With Sheets("Grenzkosten")
.Protect Password:=123, UserInterfaceOnly:=True
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True,  _
AllowInsertingRows:=True
.EnableOutlining = True
.Rows("1:250").EntireRow.Hidden = False
End With
With Sheets("Preiszusammenstellung 1")
.Protect Password:=123, UserInterfaceOnly:=True
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True,  _
AllowInsertingRows:=True
.EnableOutlining = True
.Rows("1:102").EntireRow.Hidden = False
End With
End Sub

Anzeige
AW: trotz Schutz zellen einblenden und gliederung
14.02.2012 22:42:54
Detlef
Hallo Florian,
ergänze:
wks.Protect Password:=123,
Gruß Detlef
AW: trotz Schutz zellen einblenden und gliederung
15.02.2012 08:51:30
Florian
Hallo Detlef,
vielen Dank für den Tipp, jedoch kommt jetzt die Fehlermeldung "Objekt erforderlich"...?!
Gruß, Florian
AW: trotz Schutz zellen einblenden und gliederung
15.02.2012 11:12:53
Detlef
Hallo Florian,
so muß es aussehen.
Sub Blattschutz_Ein()
Dim wks As Worksheet
Set wks = ActiveSheet
wks.Protect Password:=123, DrawingObjects:=False, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True, AllowInsertingRows:=True, AllowSorting:=False _
, AllowFiltering:=True, userinterfaceonly:=True
wks.EnableOutlining = True
wks.EnableAutoFilter = True
End Sub

Sub Blattschutz_Aus()
Dim wks As Worksheet
Set wks = ActiveSheet
wks.Unprotect Password:=123
End Sub

Gruß Detlef
Anzeige
AW: trotz Schutz zellen einblenden und gliederung
15.02.2012 11:13:53
Florian
Danke Detlef, probier es dann gleich mal aus! Gruß, Florian

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige