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

Schreibschutz per VBA setzen

Schreibschutz per VBA setzen
09.01.2007 10:45:05
Volker
Hallo,
ich habe eine Frage und hoffe bei einem Experten Hilfe zu finden:
Ich habe eine Excel-Datei für die ich auf ganz normalem Weg ein Schreibschutzkennwort vergeben habe. Das hat logischerweise zur Folge, dass jeder, der die Datei öffnet, die Möglichkeit hat das Kennwort einzugeben oder den Button "schreibschutz" zu drücken. Ich möchte aber, dass bei allen Personen, die nicht einer vorher definierten Gruppe angehören, der Schreibschutz automatisch gesetzt wird, wenn die Datei startet. Er soll nichts mehr drücken müssen.
Mein Weg wäre per "...workbook open..." den angemeldeten Benutzer zu überprüfen (wie das geht ist mir bekannt) und dann für alle die, die nicht einer bestimmten Gruppe angehören den Schreibschutz per VBA zu aktivieren. Und genau da bräuchte ich Hilfe. Konkret: Mit welchem VBA-Befehl aktiviere ich den Schreibschutz? Oder geht das etwa gar nicht...?!
Gruß und Danke!
Volker Theisinger

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 10:48:34
Jürgen
Hallo Volker
probiers mal damit
Cells.Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Gruß
Jürgen
AW: Schreibschutz per VBA setzen
09.01.2007 11:12:10
Volker
Hallo Jürgen,
danke für die superschnelle antwort. Kannst Du mir, bevor ich den Code ausprobiere, noch kurz erläutern, was der effekt in detail sein soll?
Gruß
Volker
AW: Schreibschutz per VBA setzen
09.01.2007 11:24:14
Daniel
Hallo
damit erreichst du, daß der Benutzer in der Datei nichts ändern kann.
aber vielleicht soll der Nutzer ja bestimmte Sachen ändern können, aber es soll verhindert werden, daß er das abspeichert. (was ja der Schreibschutz ermöglicht)
Leider ist es nicht möglich, die Schreibschutzeigenschaft per VBA zu ändern.
Alternativ könntest du ja eine 2. Datei erstellen, die im Workbook-Open-Ereignis die erste Datei öffnet, je nach Nutzer mit Password oder mit ReadOnly = true.
Dann bleibt der Schreibschutz erhalten, muß aber vom erwählten Nutzerkreis nicht eingegeben werden.
gruß, Daniel
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 11:37:54
Volker
Hallo,
danke! Also, wie du schon vermutest, ich will nict, dass gespeichert werden kann. Das ändern soll gestattet sein.
Und der clevere trick über die zweite Datei geht auch nicht, da dann DIE Datei trotzdem gespeichert werden könnte - wenn ich das recht verstanden habe. Und genau das will ich ja nicht.
Trotzdem danke an alle! Die Info, dass man über VBA den Schreibschutz nicht an-/ausschalten kann ist ja eigentlich schon der ko für meine anfrage...
Gruß
Volker
AW: Schreibschutz per VBA setzen
09.01.2007 11:50:23
Jürgen
Hallo Volker,
irgendwie begreife ich Dein Problem nicht richtig. Was macht es für einen Sinn Änderungen zu gestatten, das Speichern aber nicht?
Den Schreibschutz für ein Blatt kann man aber sehr wohl per VBA aufheben/setzen.
Gruß
Jürgen
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 12:22:50
Daniel
Hallo
den Schreibschutz für ein Blatt kann man schon setzten, meines Wissen nach aber nicht den Schreibschutz für die ganze Datei. Das geht meines Wissen nach nur beim Speichern und dann ist er aber auch erst beim nächsten Öffnen aktiv (wenn du andere Infos hast, würd ich das auch gerne wissen).
Zur Sinnfrage: Es ist schon recht lässtig mit einer Datei zu arbeiten, wenn der Blattschtutz akiviert ist, auch wenn man nur liest.
Weil u.U will man ja neu sortieren, Filtern, auch mal was ausblenden, löschen oder umgruppieren, berechnen oder anders Formatieren. Nur sollte der nächste Leser halt wieder eine "saubere" Datei haben.
Da kann diese Methode schon recht hilfreich sein.
Des weiteren ist es bei einem grossen Nutzerkreis schon sinnvoll, wenn alle "Leser" die Datei nur schreibgschützt öffnen, weil sie sonst für denjenigen, der tatsächlich Daten eingeben muss, u.U. zu lange blockiert ist.
Gruß, Daniel
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 12:05:47
Daniel
Hallo
doch, geht schon.
in einem Fall öffnest du die Datei mit
Workbooks.Open Filename:= "C:\...\Mappe2.xls", WriteResPassword:="xxx"
im anderen mit
Workbooks.Open Filename:= "C:\...\Mappe2.xls", ReadOnly:=True
in keinem der Fälle wird der Nutzer nach einem Password gefragt und im 2. Fall ist die Datei schreibgeschützt.
Nach dem Öffen der Datei kannst du ja die erste Datei mit
me.close savechanges:=false
wieder schließen.
Wer die Datei nicht über deine Zusatzdatei öffnet, kann die Datei dann ebenfalls nur schreibgeschützt oder mit Password öffnen.
AW: Schreibschutz per VBA setzen
09.01.2007 12:33:35
Volker
Das hört sich sehr Interesant an, Daniel. Das werde ich mal testen.
Danke vorerst, wenn ich noch ein Problemhaben sollte, werde ich mich an Dich wenden. Du hast gute Ideen... :-)
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 11:54:59
Volker
Hi,
oh, das macht schon sinn. Wenn eine Tabelle z.B. dazu dient Musterberechnungen anzustellen. Da will jeder Anwender das ursprünglichee Dokument haben (und zwar garantiert unverfälscht und nicht - auch nur aus Versehen - überspeichert). Er will aber darin Änderungen machen, da er durch Eingabe verschiedener Beispiele bestimmte Szenarieen simuliert (und ggf. auch UNTER ANDEREM NAMEN abspeichert).
Gruß
Volker
AW: Schreibschutz per VBA setzen
09.01.2007 12:07:04
Jürgen
Hallo Volker
warum machst Du es dann nicht so: anstatt workbook_open probier mal
Workbook_BeforeClose - Display Alerts abschalten - deine Datei schließen und savechanges auf false setzen.
Dann kann jeder lustig munter ändern aber beim Schließen wird nicht nach dem Speichern gefragt und keine Änderungen abgespeichert.
Gruß
Jürgen
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 12:36:06
Volker
Auch eine interessante Idee. Allerdings könnte dann auch kein Berechtigter mehr speichern...
AW: Schreibschutz per VBA setzen
09.01.2007 12:47:16
Jürgen
Hallo Volker,
ok, dann überprüfe beim Öffnen ob die Person berechtigt ist und setze eine Variable dann entsprechend auf True oder False. Beim Workbook_BeforeClose Ereignis fragst Du dann ab, ob diese Variable gesetzt ist oder nicht und schließt dann die Datei entsprechend mit oder ohne zu speichern.
Gruß
Jürgen
AW: Schreibschutz per VBA setzen
09.01.2007 13:08:42
Volker
Hört sich auch gut an, Jürgen! Ich bin kein VBA-Crack. Könnte der anwender da nicht zwischendrin speichern, ohne dass das Ereignis zieht? Aber es gibt bestimmt auch ein Ereignis, welches sich auf speichern bezieht. Wie lautet dann die Befehlszeile, damit ich mit bzw. ohne zu speichern schließe.
Gruß und Danke für Dein Engagement!
Volker
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 13:43:02
Jürgen
Hallo Volker,
zwischendrin ist das Speichern möglich, da hast Du recht. Das einzige was mir dazu noch einfällt ist den Speichern Button und den Menüpunkt Datei - Speichern zu deaktivieren (Du findest genügend Beispiele wie das geht wenn Du nach Speichern deaktivieren suchst).
Ein User mit Schreibrechten wird dann trotzdem vor dem Schließen gefragt ob er die Änderungen Speichern will oder nicht.
Gruß
Jürgen
AW: Schreibschutz per VBA setzen
09.01.2007 13:47:14
Volker
Hallo,
vielen dank für Deine Hilfe. Das wäre sicher auch ein Weg. Allerdings funktioniert die Variante von Daniel mit der vorgeschalteten Datei prima! Wennmmir jetzt noch einer sagt, wie ich die Frage, ob Makros ausgeführt werden sollen umgehe und meine Makros trotzdem ausgeführt werden, dann wäre ich glücklich. Allerdings wäre dann die Sicherheitseinstellungen in Office wertlos, ich bezweifele also, dass sich die Frage bei der bei uns eingestellten Makrosicherheit vermeiden lässt.
Gruß und Dank e an alle, die mir geholfen haben!
Volker
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 13:51:15
Jürgen
Hallo Volker,
ich hatte mal ein ähnliches Problem das ich folgendermaßen gelöst habe: beim Schließen der Datei habe ich alle Arbeitsblätter mit xlveryhidden ausgeblendet (nur eines war noch sichtbar auf dem Dick und Fett zu lesen Stand, dass man die Makros doch gefälligst aktivieren muss).
Wenn man nun die Datei öffnet und die Makros nicht aktiviert bekommt genau diesen schönen Hinweis.
Bei aktiviertem Makro habe ich das Hinweisblatt ausgeblendet und die eigentlichen Daten wieder eingeblendet.
Gruß
Jürgen
AW: Schreibschutz per VBA setzen
09.01.2007 14:20:31
Daniel
Hallo
ich denke nicht daß sich diese Sicherheitsabfrage vermeiden lässt.
Dein Schreibschutz ist aber davon ja nicht betroffen.
und wenn der User die Makros bei der Ladedatei abschaltet, wird die original-Datei ja gar nicht erst geladen.
Gruß, Daniel
Anzeige
AW: Schreibschutz per VBA setzen
09.01.2007 15:29:08
Volker
Danke für alle Antworten zum Thema Makro. Mir ging es aber darum, dass die Abfrage nicht kommt. Mein Problem ist, dass der Anwender mehrfach "drücken" muss, bevor die eigentliche Datei aufgeht (erst Schreibschutz, dann Makro). Da mir das Ausschalten der Makroabfrage als niht realisierbar erschien, hab ich im Forum nach dem Thema Schreibschutz gefragt. Und als das gelöst war, war ich unverschämt zu erwänen, dass mich jetzt nur noch die Makro Abfrage stört. Aber wenn man die weg machen könnte, wäre das ja auch nicht im Sinne des Erfinders. Deshalb war das mehr eine rethorische Frage...
Gruß und Danke an alle Helfer!!!
Anzeige

16 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige