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

Blattschutz beim Schließen der Mappe setzen

Forumthread: Blattschutz beim Schließen der Mappe setzen

Blattschutz beim Schließen der Mappe setzen
15.06.2006 09:30:13
Fritz
Hallo VBA-Spezialisten,
ich bitte euch um Unterstüzung bezüglich folgendem Vorhaben:
In der Recherche habe ich folgendes Makro gefunden. Mit diesem Code
wird beim Schließen der Arbeitsmappe für alle Tabellen ein Blattschutz aktiviert. Das Makro setzt aber voraus, dass zu diesem Zeitpunkt alle Tabellen der Arbeitsmappe nicht geschützt sind.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WS As Worksheet
For Each WS In ThisWorkbook.Sheets
With WS
.Protect DrawingObjects:=True
.Protect Contents:=True
.Protect Scenarios:=True
.Protect password:="XXX"
End With
Next
End Sub

Ich möchte den Code jedoch gerne dahingehend verändern, dass das Makro prüft, ob irgendwelche Tabellen in der Mappe ungeschützt sind und diese dann automatisch mit dem betreffenden Passwort schützt. Bei den Tabellen, die zu diesem Zeitpunkt bereits geschützt sind, soll der Schutz beibehalten werden.
Vielen Dank für eure Hilfe
Gruß
Fritz
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 09:59:39
Lukas Mosimann
Hallo Fritz
Gebe nach der Sub-Linie noch "On error resume next" ein.
Gruss
Lukas
Bitte um Rückmeldung
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 10:14:39
Fritz
Hallo Lukas,
zunächst vielen Dank für Deine Unterstützung.
Ich werde jetzt beim Schließen der Arbeitsmappe aufgefordert, die Passwörter für bereits geschützte Tabellen einzugeben, und das ggf. mehrere Mal. Das ist so aber nicht gewünscht. Beim Schließen der Mappe soll lediglich geprüft werden, welche Tabellen noch keinen Blattschutz haben und diese Tabellen mit einem gleichen Passwort schützen. Bei bereits geschützten Tabellen soll der Schutz mit dem jeweiligen Passwort bestehen bleiben.
Ich hoffe, das sich das so realisieren lässt.
Gruß
Fritz
Anzeige
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 10:14:53
Bugs
Hallo, nimm dies hier:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim WS As Worksheet
For Each WS In ThisWorkbook.Sheets
With WS
.Protect Password:="xxx"
End With
Next
End Sub

mfg
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 10:19:42
Fritz
Hallo,
Funktioniert wie gewünscht!
Besten Dank!
Gruß
Fritz
Anzeige
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 10:20:33
Josef Ehrensberger
Hallo Fitz!
Das geht so.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WS As Worksheet

For Each WS In ThisWorkbook.Sheets
  If Not WS.ProtectContents Then
    WS.Protect DrawingObjects:=True, _
      Contents:=True, _
      Scenarios:=True, _
      Password:="XXX"
  End If
Next

End Sub


Gruß Sepp


Anzeige
AW: Blattschutz beim Schließen der Mappe setzen
15.06.2006 10:49:12
Fritz
Hallo Sepp,
kurze Rückmeldung:
1. auch mit deinem Code klappts wie gewünscht!
2. freut mich, dass du mir wieder mal helfen konntest.
3. habe noch ein weiteres Problem (neuer Threed). Wäre nett, wenn Du Dir das mal
ansiehst!
Vielen Dank!
Gruß
Fritz
AW: Seh keinen neuen Thread o.T.
15.06.2006 10:51:04
Bugs
.
AW: Seh keinen neuen Thread o.T.
15.06.2006 11:07:10
Fritz
Hallo,
inzwischen erfolgt: "Zellschutz in Abhängigkeit des Zellenmusters".
Danke für Dein Interesse und hoffe, dass mir geholfen werden kann.
Gruß
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Blattschutz beim Schließen der Excel-Mappe aktivieren


Schritt-für-Schritt-Anleitung

Um den Excel-Blattschutz automatisch beim Schließen der Mappe zu aktivieren, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  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. Doppelklicke auf "Diese Arbeitsmappe" im Projektfenster.

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       On Error Resume Next
       Dim WS As Worksheet
       For Each WS In ThisWorkbook.Sheets
           If Not WS.ProtectContents Then
               WS.Protect DrawingObjects:=True, _
                          Contents:=True, _
                          Scenarios:=True, _
                          Password:="DeinPasswort"
           End If
       Next
    End Sub
  5. Ersetze "DeinPasswort" mit dem gewünschten Passwort für den Blattschutz.

  6. *Schließe den VBA-Editor und speichere deine Arbeitsmappe als Excel-Makro-aktivierte Datei (`.xlsm`).**

Jetzt wird beim Schließen der Excel-Mappe automatisch der Blattschutz für alle ungeschützten Blätter aktiviert.


Häufige Fehler und Lösungen

  • Problem: Beim Schließen der Mappe wirst du aufgefordert, Passwörter einzugeben.

    • Lösung: Stelle sicher, dass der Code die Bedingung If Not WS.ProtectContents verwendet, um nur ungeschützte Blätter zu schützen.
  • Problem: Der Blattschutz wird nicht aktiviert.

    • Lösung: Überprüfe, ob das Makro korrekt in "Diese Arbeitsmappe" eingefügt wurde und ob die Datei als Makro-aktivierte Datei gespeichert wurde.

Alternative Methoden

Wenn du den Blattschutz manuell aktivieren möchtest, gehe wie folgt vor:

  1. Markiere das Blatt, das du schützen möchtest.
  2. Klicke auf "Überprüfen" im Menüband.
  3. Wähle "Blatt schützen".
  4. Gib ein Passwort ein und bestätige es.

Diese Methode ist jedoch weniger effizient, wenn du den Schutz für mehrere Blätter in einer Mappe aktivieren möchtest.


Praktische Beispiele

Stellen wir uns vor, du hast eine Excel-Datei mit mehreren Arbeitsblättern, die Finanzdaten enthalten. Du möchtest sicherstellen, dass diese Daten geschützt sind, wenn du die Datei schließt. Mit dem oben genannten Makro wird automatisch der Blattschutz für alle ungeschützten Blätter gesetzt, sodass deine Daten sicher bleiben.

Ein Beispielcode, der auch den Schutz bestehender Blätter mit ihren eigenen Passwörtern beibehält, sieht so aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Dim WS As Worksheet
    For Each WS In ThisWorkbook.Sheets
        If Not WS.ProtectContents Then
            WS.Protect DrawingObjects:=True, _
                       Contents:=True, _
                       Scenarios:=True, _
                       Password:="DeinPasswort"
        End If
    Next
End Sub

Tipps für Profis

  • Passwort-Management: Verwende verschiedene Passwörter für unterschiedliche Blätter, um die Sicherheit zu erhöhen.
  • Fehlerbehandlung: Nutze On Error Resume Next, um sicherzustellen, dass das Makro bei Fehlern nicht abbricht.
  • Dokumentation: Kommentiere deinen Code, um die Funktionsweise für andere Benutzer verständlich zu machen.

FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz für alle Blätter in meiner Excel-Datei aktivieren? Du kannst den oben genannten VBA-Code verwenden, um den Blattschutz automatisch beim Schließen der Mappe zu aktivieren.

2. Was passiert, wenn ich das Passwort vergesse? Wenn du das Passwort vergisst, gibt es keine native Möglichkeit, den Blattschutz aufzuheben. Du solltest Passwörter sicher aufbewahren oder ein Passwort-Management-Tool nutzen.

3. Ist der Blattschutz in Excel wirklich sicher? Der Blattschutz bietet einen grundlegenden Schutz, ist jedoch nicht unknackbar. Für sensible Daten solltest du zusätzliche Sicherheitsmaßnahmen in Betracht ziehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige