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
---"Andreas" <And...@discussions.microsoft.com> 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.
nur zu 1.)
Wenn ich (unter Excel 2007) nur einzelne Zellen markiert habe, ist "Zellen einfügen" inaktiv; habe ich eine ganze Zeile markiert, kann ich Zeilen einfügen.
Gruß
CN
Andreas schrieb:
Unter Excel XP (2003) funktioniert das Einfügen von Zeilen offensichtlich
nur über den Menübefehl "Einfügen-->Zeilen einfügen" wobei automatisch nach
der letzten leeren Zelle eingefügt wird.
Das Einfügen über das Kontextmenü (rechte Maustaste bei der
Zeilenüberschrift) funktioniert nicht.
Danke u. Gruß,
Andreas
"Robert Gelbmann" wrote:
> Hallo Andreas!
>
> ---"Andreas" <And...@discussions.microsoft.com> 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.
>
Habe festgestellt das in Excel selbst nur das Einfügen über das Kontextmenü
(rechte Maustaste bei der Zeilenüberschrift) nicht geht. Über den Menübefehl
gehts.
Ein Makro kann (bei Parameter "UserInterfaceOnly") dann wohl Zeilen
einfügen. Notfalls erlaube ich es beim Schützen explizit mit
"AllowInsertRows" (wird wohl auch notwendig sein).
> !! 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!
Ich werde deshalb beim Ereignis "Open" auf jedenfall alle Blätter
entsprechend schützen. Hat auch den Vorteil das der User mit dem Blattschutz
nichts mehr zu tun hat.
>
> 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.
Ich entsperre das Blatt weil ich den AutoFilter benutze. Das werde ich mir
aber schenken u. beim Sperren durch das Makro nach "Open" das Filtern
erlauben.
>
>
> > 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.)
Tatsächlich habe ich den Admin der Mappe gemeint. Da wir einen Novell Server
verwenden lasse ich das mit der Benutzerberechtigung lieber ;-)
>
>
> > 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)!
Wenn ich in einer Mappe ohne Makros den Blattschutz aktiviere bleibt dieser
auch nach SaveAs in der neuen Mappe genauso erhalten. In meinem Fall wurde
manchmal der Schutz zwar nicht aufgehoben aber der Parameter xlUnlockedCells
auf xlNoRestrictions geändert (direkt nach dem Öffnen ohne das eine meiner
Prozeduren aufgerufen wurde). Somit blieb der Schutz zwar aktiv aber der
Benutzer durfte alles da die ersten beiden Haken im Sperrdialog aktiv waren -
das konnte ich nicht nachvollziehen.
Wie oben erwähnt werde ich deshalb beim Öffnen der Mappe den Schutz
entprechend anpassen.
>
>
> > 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 ...
Wie oben beschrieben wurden im Hintergrund (ohne Ausführen einer Prozedur)
beide Haken gesetzt (Benutzer darf gesperrt u. ungesperrte Zellen bearbeiten,
entspricht ja xlNoRestrictions). Dadurch blieb natürlich auch der
Passwortschutz erhalten. Keine Ahnung warum u. von wem der Haken für "...darf
gesperrte Zellen bearbeiten" gestetzt wird.
>
> > 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!)
Werd ich so machen. Das Unprotect verwerfe ich u. erlaube stattdessen das
was ich brauche :-)
Die Blätter die empfindliche Daten enthalten sind im diesem Admin Passwort
geschützt. Zusätzlich soll der User aber nach Fertigstellung seiner
Kalkulation (um das handelt es sich hier) drei von den Blätter komplett
sperren - am Besten mit einem von ihm gewählten Passwort. Den Status dieser
drei Blätter (xlUnlockedCells oder xlNoSelection) werde ich eben beim Makro
"Sperren" nach Open abfragen. Das Passwort beim "Komplettschutz" werde ich
wohl irgendwo in eine uneinsehbare Zelle (gesperrt, Farbe weiss) übergeben
damit man die Sperre notfalls auch in einer neuen Sitzung wieder aufheben
kann.
>
>
> > 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
Hast mir sehr geholfen. Vielen Dank und Gruß aus Vorarlberg
Andreas Höfle