Blattschutz reagiert unberechenbar

14/05/2008 - 19:25 von Andreas | Report spam
Hallo,

obwohl der Schutz in meinen Büchern u. div. Foren gut beschrieben ist kann ich
für folgende zwei Probleme keine Lösung finden(in Excel 2000 bis 2003):

1.) Das Erlauben von bestimmten Aktionen scheint nicht zu klappen, z.B.
Zeilen einfügen: Obwohl ich es erlaube kann ich im geschützen Zustand keine
Zeilen einfügen (probiert auf mehreren Versionen u. Rechnern). Habe nur ich
das Problem?

2.) eigentliches Problem:
Habe eine Mappe mit mehreren Blàttern wobei einige davon mit Admin-Passwort
geschützt sind, die restl. ohne.
Bei Save od. SaveAs (in Excel) bleibt der Schutz vorerst erhalten bis diese
Datei wieder geöffnet wird, dann:
- bleibt der Schutz oder aber
- der Schutz in einigen Blàttern ist deaktiviert im Sinne von
"xlNoRestrictions", d.h.
der Schutz ist aktiv doch kann man gesperrte u. ungesperrte Zellen
bearbeiten.
Bei den Blàttern mit Passwort bleibt die Passworteingabe immer erhalten.
Trotz unzàhliger Versuche konnte ich für dieses Verhalten kein Schema
entdecken.

Seit einigen Tagen versuche ich mich in VBA. In jeder Prozedur entsperre ich
das Blatt um es nach der eigentlichen Aktion wieder zu sperren
(UserInterfaceOnly:=True, xlUnlockedCells, ggf. Password).
Muss ich wirklich bei Workbook-Ereignis "BeforeSave" und "Open" in allen
Blàttern den Schutz aktivieren um sicher zu stellen das nichts schief geht,
egal ob Save/SaveAs/Open ?
Verwende auch "msoFileDialogSaveAs" um Pfade u. Namen vorzuschlagen (sollte
aber zum Befehl in Excel kein Unterschied darstellen, oder?).

Hoffe diese Fragen sind berechtigt da ich keinerlei Hinweise darauf fand.
Besten Dank und LG
Andreas
 

Lesen sie die antworten

#1 Robert Gelbmann
14/05/2008 - 20:50 | Warnen spam
Hallo Andreas!

"Andreas" schrieb ...
obwohl der Schutz in meinen Büchern u. div. Foren gut beschrieben
ist kann ich
für folgende zwei Probleme keine Lösung finden(in Excel 2000 bis
2003):

1.) Das Erlauben von bestimmten Aktionen scheint nicht zu klappen,
z.B.
Zeilen einfügen: Obwohl ich es erlaube kann ich im geschützen
Zustand keine
Zeilen einfügen (probiert auf mehreren Versionen u. Rechnern).
Habe nur ich
das Problem?



Es heißt nicht umsonst "Alle ***Benutzer*** dieses Arbeitsblattes
dürfen"!
Makros dürfen nàmlich deshalb noch lange nicht!

Aber dafür gibt es ja den Parameter "UserInterfaceOnly" bei der
Protect-Methode, den du ja schon erwàhnt hast.

!! Ich weiß aber nicht, ob du dir darüber im Klaren bist, dass
dieses Einrichten des UserInterfaceOnly nur für die laufende
"Sitzung" Gültigkeit besitzt?
Wenn du die Datei schließt und wieder öffnest, dann musst du die
Zeile daher tatsàchlich erneut aufrufen!

Ein Aufheben des Schutzes ist dazu jedoch nicht (!) erforderlich, da
auch auch (!) bei bestehendem (!) Blattschutz die folgende Zeile
funktioniert:

ActiveSheet.Protect DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True

Ggf. musst du selbstverstàndlich die Blatt-Adressierung anpassen
und - falls gewünscht - auch weitere Argumente für "Benutzer ...
dürfen" hinzufügen.


2.) eigentliches Problem:
Habe eine Mappe mit mehreren Blàttern wobei einige davon mit
Admin-Passwort
geschützt sind, die restl. ohne.



Was meinst du mit Admin-Passwort?
Ein gewöhnliches Blattschutz-Kennwort oder die Verwendung der
Zellsperre im Verbund mit den Windows-Benutzerberechtigungen?
(Abgeleitet vom Text unten vermute ich mal, dass du ersteres
meinst.)


Bei Save od. SaveAs (in Excel) bleibt der Schutz vorerst erhalten
bis diese
Datei wieder geöffnet wird, dann:
- bleibt der Schutz oder aber
- der Schutz in einigen Blàttern ist deaktiviert im Sinne von
"xlNoRestrictions", d.h.
der Schutz ist aktiv doch kann man gesperrte u. ungesperrte
Zellen
bearbeiten.



xlNoRestrictions ist ein Wert für die Eigenschaft EnableSelection
des Worksheet-Objektes.
Auch diese behàlt - wenn (!) der Blattschutz *nicht* aktiv ist - nur
wàhrend der Sitzung ihren Wert!
Sie bestimmt aber nicht, ob Zellen gesperrt oder ungesperrt sind
(bearbeitet werden können)!


Bei den Blàttern mit Passwort bleibt die Passworteingabe immer
erhalten.
Trotz unzàhliger Versuche konnte ich für dieses Verhalten kein
Schema
entdecken.



Scheint mir so, als ob irgendein Makro (evtl. in einem Event)
versucht den Blattschutz ohne Angabe des Passwortes aufzuheben und
da jene Blàtter, die mit Passwort geschützt sind, mangels korrekter
Passwortangabe ihren Blattschutz nicht verlieren, die anderen jedoch
schon, nimmt das Unheil im Sinne des von dir beschriebenen
Verhaltens seinen Lauf ...


Seit einigen Tagen versuche ich mich in VBA. In jeder Prozedur
entsperre ich
das Blatt um es nach der eigentlichen Aktion wieder zu sperren
(UserInterfaceOnly:=True, xlUnlockedCells, ggf. Password).
Muss ich wirklich bei Workbook-Ereignis "BeforeSave" und "Open" in
allen
Blàttern den Schutz aktivieren um sicher zu stellen das nichts
schief geht,
egal ob Save/SaveAs/Open ?



Ich würde die Eigenschaft EnableSelection und das Protect mit
UserInterfaceOnly:=True und den anderen gewünschten Einstellungen
für jedes gewünschte Blatt tatsàchlich im Open-Ereignis festlegen.
Ein Aufheben des Blattschutzes ist jedoch in der Regel nicht
erforderlich! (Es gibt IMHO jedoch einige wenige Aktionen, die in
diesem Zustand vom Makro nicht durchgeführt werden dürften!)


Verwende auch "msoFileDialogSaveAs" um Pfade u. Namen
vorzuschlagen (sollte
aber zum Befehl in Excel kein Unterschied darstellen, oder?).



Nein, hat damit nichts zu tun.


In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen


Servus aus Wien,
-Robert Gelbmann-

I solemnly swear that I'm up to no good.

Ähnliche fragen