Clever-Excel-Forum

Normale Version: Excel-Mappe schreibgeschützt öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

eine Excel-Datei kann ja beim "Speichern unter..." im Speichern-Dialogfenster mit dem Dropdown "Tools" mit einer Meldung versehen werden, daß die Datei schreibgeschützt geöffnet werden soll, die dann beim Öffnen der Datei erscheint.

Kann ich diesen Schreibschutz auch über den Windows-Anmeldungsnamen steuern?
VBA.Environ("Username")

Wenn also User Dimpflmoser angemeldet ist, soll die Datei schreibgeschützt sein, wenn Rabe angemeldet ist, dann ist sie zum Ändern freigegeben oder geht das nur über den Blattschutz?

2. Frage:
Wenn ich die Struktur schützen will, kann ich das ja über
Code:
ActiveWorkbook.Protect Structure:=True, Windows:=False
'
    ActiveWorkbook.Unprotect

machen. Geht das auch mit Passwort?
Hi Ralf!
Zur zweiten Frage:
Die Workbook.Protect-Methode hat auch einen optionalen benannten Parameter Password:=
https://msdn.microsoft.com/de-de/library...93800.aspx

Zur ersten Frage prokel ich noch weiter, dürfte aber schwierig(?) werden.

Gruß Ralf
Versuch mal:


Code:
Private Sub Workbook_Open()
   If Environ("username") <> "Rabe" Then
     Application.DisplayAlerts = False
     Workbooks.Open ThisWorkbook.FullName, , True
   End If
End Sub
Hallo Ralf,

ohne Hilfe von außen wird das nicht gehen, und ob die Hilfe hilft ...
Problem ist, dass das Workbook_Open Ereignis erst dann greift, wenn der oder die Datei-Schütze überwunden sind.

Hat mich übrigens 2003 schon mal ein Ralf bei Herber gefragt Smile
http://www.herber.de/forum/archiv/224to2...ieren.html
Hi Ralf,

(20.01.2017, 12:41)RPP63 schrieb: [ -> ]Zur zweiten Frage:
Die Workbook.Protect-Methode hat auch einen optionalen benannten Parameter Password:=
https://msdn.microsoft.com/de-de/library...93800.aspx

Ausdruck.Protect(Password, Structure, Windows)
Code:
ActiveWorkbook.Protect Password:="Test", Structure:=True, Windows:=True
    ActiveWorkbook.Protect("Test", True, True)

die erste Zeile funktioniert, die zweite nicht.
Die zweite bräuchte (hier natürlich Quatsch) entweder eine Zuweisung per = oder würde (hier ebenfalls Quatsch) in einer With-Anweisung Sinn machen.
So nach dem Schema:
Code:
With Workbooks.Open("J:\Rabe.xlsm")
  .Worksheets("Tabelle1").Cells(1) = "Moin"
  .Close True
End With

Gruß Ralf
Hallo Ralf,

hier ist noch das Prinzip aus dem Script, nur aus einer anderen Excel-Datei heraus dann anwendbar:
Code:
Sub nicks()
Workbooks.Open "I:\Test\Master.xlsm", ReadOnly:=False, WriteResPassword:="Willi", IgnoreReadOnlyRecommended:=True
End Sub

Hier ist dann auch gleich noch die Bedeutung der Parameter ersichtlich, siehe auch die Antwort von snb. Du musst den Code, wie gesagt, nur aus einem anderen Workbook (oder vorhin Script) heraus starten und die Datei öffnen. Die gleiche nochmal zu öffnen wird wohl nix weil die Abfrage ja beim ersten Versuch schon kommt. Hauptsache, Du gibst das Teil nicht mal aus Versehen dem Anwender mit Smile
Hallo zusammen,

ich habe gerade snb#s Version getestet und es funktioniert einwandfrei.

Natürlich muss gewährleistet sein, dass die Datei mit aktivierten Makros nutzbar ist.
Hi,

(20.01.2017, 12:47)snb schrieb: [ -> ]Versuch mal:

danke, werde ich testen!

[edit]
funktioniert!
Hallöchen Ralf,

nachdem atilla nun von snb's Lösung überzeugt ist und ich mir deswegen die Aufgabenstellung nochmal durchgelesen habe, rudere ich mal 50% zurück. Das Wort "Schreibschutz" hatte bei mir gleich die Passworteingabe assoziiert. Also, wenn Du kein Passwort vergeben hast, passt die Lösung.

Mit Passwortvergabe bleibe ich bei meinem Vorschlag Smile
Seiten: 1 2