Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blattschutz automatisch aktivieren beim verlassen

Blattschutz automatisch aktivieren beim verlassen
28.01.2005 19:57:46
MatthiasB
Hallo,
ich habe bestimmte in allen Arbeibeitsblättern Zellen mit dem Blattschutz geschützt. Um zu verhindern, dass jemand den Blattschutz deaktiviert und so abspeichert, möchte ich in allen Arbeitsblättern automatisch beim schliessen der Datei den Blattschutz aktivieren, so dass bei neuem öffnen der Datei auf jedem Arbeitsblatt der Blattschutz aktiviert ist.
Danke
Matthias
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz automatisch aktivieren beim verlassen
28.01.2005 20:01:12
chris
das geht so:
private Const MyPasswort As String = "passwort"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim mysheet As Worksheet
For Each mysheet In ActiveWorkbook.Worksheets
mysheet.Protect Password:=MyPasswort, DrawingObjects:=True, Contents:=True, _
Scenarios:=True, UserInterfaceOnly:=True
Next mysheet
End Sub

Sub schutzaufheben()
For Each mysheet In ActiveWorkbook.Worksheets
mysheet.Unprotect MyPasswort


Next mysheet
End Sub
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Blattschutz automatisch aktivieren beim Verlassen


Schritt-für-Schritt-Anleitung

Um den Excel Blattschutz automatisch beim Schließen der Datei zu aktivieren, kannst du den folgenden VBA-Code verwenden:

  1. Öffne die Excel-Datei, in der du den Blattschutz aktivieren möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke im Projektfenster auf Diese Arbeitsmappe.
  4. Füge den folgenden Code in das Codefenster ein:
Private Const MyPasswort As String = "passwort"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim mysheet As Worksheet
    For Each mysheet In ActiveWorkbook.Worksheets
        mysheet.Protect Password:=MyPasswort, DrawingObjects:=True, Contents:=True, _
        Scenarios:=True, UserInterfaceOnly:=True
    Next mysheet
End Sub
  1. Speichere die Änderungen und schließe den VBA-Editor.
  2. Wenn du die Datei jetzt schließt, wird der Blattschutz automatisch aktiviert.

Häufige Fehler und Lösungen

Fehler: Der Blattschutz wird nicht aktiviert.

Lösung: Stelle sicher, dass du das Passwort in der Konstante MyPasswort korrekt eingetragen hast. Wenn das Passwort nicht übereinstimmt, wird der Blattschutz nicht aktiviert.

Fehler: Der Code wird nicht ausgeführt.

Lösung: Überprüfe, ob die Makros in deiner Excel-Anwendung aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für Trust Center > Makroeinstellungen und aktiviere die Makros.


Alternative Methoden

Eine andere Möglichkeit, den Blattschutz zu aktivieren, besteht darin, ein Ereignis zu verwenden, das beim Speichern der Datei ausgelöst wird. Hierfür kannst du den Workbook_BeforeSave-Ereignis verwenden:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim mysheet As Worksheet
    For Each mysheet In ActiveWorkbook.Worksheets
        mysheet.Protect Password:=MyPasswort
    Next mysheet
End Sub

Dieser Code aktiviert den Blattschutz, wenn die Datei gespeichert wird, was auch hilfreich sein kann, wenn du die Datei nicht schließen möchtest.


Praktische Beispiele

Angenommen, du hast eine Excel-Datei mit mehreren Arbeitsblättern, in denen sensible Informationen gespeichert sind. Indem du den Blattschutz automatisch aktivierst, stellst du sicher, dass niemand versehentlich Änderungen an diesen Informationen vornehmen kann.

Du kannst den Code leicht anpassen, um verschiedene Passwörter für unterschiedliche Arbeitsblätter zu verwenden, falls nötig. So kannst du den Schutz je nach Sensibilität der Daten variieren.


Tipps für Profis

  • Verwende eine komplexe Passwortstruktur, um den Blattschutz effektiver zu machen.
  • Teste den Code in einer Testdatei, bevor du ihn in einer wichtigen Datei verwendest.
  • Denke daran, regelmäßig Backups deiner Excel-Dateien zu erstellen, insbesondere wenn du mit VBA arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz wieder aufheben?
Verwende den folgenden Code, um den Blattschutz auf allen Arbeitsblättern aufzuheben:

Sub schutzaufheben()
    Dim mysheet As Worksheet
    For Each mysheet In ActiveWorkbook.Worksheets
        mysheet.Unprotect MyPasswort
    Next mysheet
End Sub

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer. Achte jedoch darauf, dass die Umgebungen entsprechend konfiguriert sind.

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