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

Schreibschutz per Makro

Schreibschutz per Makro
05.11.2003 13:26:26
Marc Richter
Hallo,

ich habe folgenden Code eingegeben:


Private Sub Workbook_Open()
ActiveWorkbook.ChangeFileAccess xlReadOnly
End Sub


Wenn ich das in "Diese Arbeitsmappe" kopiere und ausführe, dann soll die Datei eigentlich schreibgeschützt sein. Wenn ich aber etwas verändere und dann speichere, dann sagt er, das diese Datei schon vorhanden ist und fragt ob sie überschrieben werden soll. Selbst wenn ich ja sage und dann die Datei schließe und neu öffne, ist die Änderung nicht mehr vorhanden. Insofern funktioniert der Code. Ich möchte auch von vornherein unterbinden, das er speichert, auch wenn er nur so tut als ob. Er soll am besten eine Msgbox zeigen, in der darauf hingewiesen wird, das dies zur Zeit nicht möglich ist. Kann mir da jemand helfen?

Danke schonmal im Voraus! Auch vielen Dank an Russi, von dem ich den Code oben habe!!!

Gruß,
Euer Marc

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutz per Makro
05.11.2003 14:15:21
Gert Seler
Hallo Marc,
um ein "Tabellenblatt" zu schützen is kein VBA nötig.
gehe zu "EXTRAS" ---> "Schutz" ---> "Arbeitsmappe schützen" mit Kennwort,
und alle Tab-Blätter der Mappe können nicht mehr geändert werden. Bei Eingaben
erscheint eine Meldung, das diese Mappe nich zu bearbeiten ist.
mfg
Gert
AW: Schreibschutz per Makro
05.11.2003 14:22:53
Marc Richter
Hallo Gert,

danke für die Info. Aber das war bisher auch schon so. Und eben genau diese Meldung wollte ich umgehen, aber trotzdem die Datei schreibgeschützt wissen. Ich bin jetzt auf folgende Lösung gekommen: (Für Verbesserungsvorschläge bin ich immer offen!)


Private Sub CommandButton1_Click()
Range("B10").Select
back = MsgBox("Wollen Sie wirklich speichern?" & (Chr(13)) & " " & (Chr(10)) & "ACHTUNG, alle Einstellungen und Daten werden übernommen!", vbCritical + vbYesNoCancel + vbDefaultButton2, "ACHTUNG!!!")
Select Case back
Case 6
If ActiveWorkbook.ReadOnly Then
back = MsgBox("Achtung, diese Datei ist schreibgeschützt. Sie können nicht speichern!", vbCritical + vbOKOnly, "ACHTUNG!!!")
Select Case back
Case 1
Exit Sub
End Select
End If
For Each W In Application.Workbooks
W.Save
Next W
Case 7
Exit Sub
End Select
End Sub


Dieser Code bewirkt, das ich, wenn der VB-Schreibschutz aktiv ist, nicht speichern kann. Wenn er nicht aktiv ist, z. B. durch ein (') vor der Zeile, dann kann ich wieder speichern! Wie gesagt, sollte es eine elegantere Lösung geben, bin ich für alles offen!

Gruß,
Marc
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige