Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Mappe schreibgeschützt geöffnet wurde

Forumthread: Prüfen ob Mappe schreibgeschützt geöffnet wurde

Prüfen ob Mappe schreibgeschützt geöffnet wurde
22.02.2008 08:04:18
Mario
Hallo,
ich habe eine Excelmappe, die ohne das entsprechende Kennwort nur schreibgeschützt geöffnet werden kann.
In der Mappe befindet sich eine Schaltfläche, mit der diese Mappe gespeichert werden kann.
Für den User, der das Passwort hat, ist das kein Thema. Wer aber die Mappe schreibgeschützt geöffnet hat,
bekommt jetzt die Möglichkeit die Mappe an einem anderen Ort zu speicher.
Wie kann ich abfragen, ob die Mappe aktuell schreibgeschützt geöffnet ist bzw. vermeiden, dass diese
Abfrage nach einem anderen Speicherort kommt?
Viele Grüße
mario

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Mappe schreibgeschützt geöffnet wurde
22.02.2008 10:03:11
Tino
Hallo,
so müsste es gehen.
Als Code in die Arbeitsmappe.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.ReadOnly = True Then
MsgBox "schreibgeschützt"
Cancel = True
End If
End Sub


Gruß
Tino

Anzeige
AW: Prüfen ob Mappe schreibgeschützt geöffnet wurde
22.02.2008 10:14:00
Mario
Hi Tino,
super, vielen Dank, funktioniert wie gewünscht.
Grüße/mario

AW: Prüfen ob Mappe schreibgeschützt geöffnet wurde
22.02.2008 10:33:00
fcs
Hallo Mario,
den Code für den Button muss du etwa wie folgt anpassen.

Sub TestSpeichern()
If ThisWorkbook.ReadOnly = True Then
MsgBox "Die Datei ist schreibgeschützt, Sie dürfen diese Datei nicht speichern"
Else
ThisWorkbook.Save
End If
End Sub


Allerdings muss du auch die Aktivierung der Makros beim Öffnen erzwingen, um das Speichern unter einem anderen Namen via Menü Datei zu erschweren. Dazu ein zusätzliches Tabellenblatt mit dem Namen z.B. "Info" in der Arbeitsmappe einfügen und einen kleinen Hinweis-Text eintragen.
Unter DieseArbeitsmappe dann folgenden Code einfügen. Die Zeilen mit den Meldungstexten kannst du natürlich auch weglassen.


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Blatt As Object
If Me.ReadOnly = True And Me.Saved = False Then
MsgBox "Die Datei ist schreibgeschützt, Sie dürfen diese Datei nicht speichern"
VBA.SendKeys "+N" 'Sendet Alt+N (Nein) an die Sicherheitsabfrage
Else
'Alle Blätter ausser Blatt "Info" vor dem Schliessen ausblenden
For Each Blatt In Me.Sheets
If Blatt.Name = "Info" Then
Blatt.Visible = xlSheetVisible
Else
Blatt.Visible = xlSheetVeryHidden
End If
Next
Me.Save
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Me.ReadOnly = True And Me.Saved = False Then
MsgBox "Sie dürfen diese Datei nicht speichern"
Cancel = True
End If
End Sub
Private Sub Workbook_Open()
'Alle Blätter einblenden
Dim Blatt As Object
For Each Blatt In Me.Sheets
Blatt.Visible = xlSheetVisible
Next
End Sub


Anzeige
;
Anzeige

Infobox / Tutorial

Prüfen, ob eine Excel-Mappe schreibgeschützt geöffnet wurde


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine Excel-Arbeitsmappe schreibgeschützt geöffnet wurde, kannst du den folgenden VBA-Code verwenden. Dieser verhindert, dass der Benutzer die Datei speichert, wenn sie im schreibgeschützten Modus geöffnet wurde.

  1. Öffne die Excel-Datei, in der du den Code einfügen möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke im Projekt-Explorer auf deine Arbeitsmappe, und wähle "Diese Arbeitsmappe".
  4. Füge den folgenden Code ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If ActiveWorkbook.ReadOnly = True Then
        MsgBox "Diese Arbeitsmappe wurde schreibgeschützt geöffnet."
        Cancel = True
    End If
End Sub
  1. Schließe den VBA-Editor und speichere die Datei.

Mit diesem Code wird eine Abfrage angezeigt, wenn die Datei schreibgeschützt geöffnet wurde, und der Speichervorgang wird abgebrochen.


Häufige Fehler und Lösungen

  • Fehler: Der VBA-Code funktioniert nicht.

    • Lösung: Stelle sicher, dass du den Code in "Diese Arbeitsmappe" eingefügt hast. Überprüfe auch, ob Makros in Excel aktiviert sind.
  • Fehler: Die Abfrage erscheint nicht.

    • Lösung: Überprüfe, ob die Arbeitsmappe tatsächlich im schreibgeschützten Modus geöffnet wurde. Du kannst dies testen, indem du die Datei ohne Schreibschutz öffnest und versuchst, sie zu speichern.

Alternative Methoden

Eine andere Möglichkeit, um die Excel-Abfrage zu implementieren, ist die Anpassung des Codes für einen Speichern-Button. Hier ist ein Beispiel:

Sub TestSpeichern()
    If ThisWorkbook.ReadOnly = True Then
        MsgBox "Die Datei ist schreibgeschützt, Sie dürfen diese Datei nicht speichern."
    Else
        ThisWorkbook.Save
    End If
End Sub

Füge diesen Code in ein Modul ein, das du mit einem Button verknüpfen kannst.


Praktische Beispiele

Hier ist ein Beispiel, das zusätzlich eine Abfrage beim Schließen der Arbeitsmappe integriert, um sicherzustellen, dass der Benutzer die Datei nicht speichert, wenn sie schreibgeschützt ist:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Me.ReadOnly = True And Me.Saved = False Then
        MsgBox "Die Datei ist schreibgeschützt, Sie dürfen diese Datei nicht speichern."
        Cancel = True
    End If
End Sub

Dieser Code sorgt dafür, dass der Benutzer nicht in der Lage ist, Änderungen zu speichern, wenn die Arbeitsmappe zuvor im schreibgeschützten Modus geöffnet wurde.


Tipps für Profis

  • Überlege, zusätzliche Sicherheitsmaßnahmen zu ergreifen, wie z. B. das Hinzufügen eines Passwortschutzes für die Datei, um zu verhindern, dass die Datei ohne Berechtigungen geöffnet wird.
  • Nutze den Code zur Identifikation von schreibgeschützten Dateien, um dem Benutzer klare Hinweise zu geben, was er tun kann, falls er die Datei bearbeiten möchte.
  • Füge eine Dokumentation oder Hinweise in die Excel-Datei ein, um den Benutzern zu helfen, die Funktionsweise des Schreibschutzes besser zu verstehen.

FAQ: Häufige Fragen

1. Was bedeutet es, wenn eine Arbeitsmappe schreibgeschützt geöffnet wurde?
Eine schreibgeschützte Arbeitsmappe kann nicht bearbeitet werden, es sei denn, der Benutzer hat das erforderliche Passwort, um die Datei im normalen Modus zu öffnen.

2. Wie kann ich sicherstellen, dass der Benutzer nicht die Option "Speichern unter" verwenden kann?
Verwende den VBA-Code, um den Speichervorgang zu unterbinden, wenn die Datei schreibgeschützt geöffnet wurde. Du kannst auch die Sichtbarkeit von bestimmten Blättern steuern, um den Zugriff zu beschränken.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige