Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Per VBA prüfen, ob Arbeitsmappe geschützt

Forumthread: Per VBA prüfen, ob Arbeitsmappe geschützt

Per VBA prüfen, ob Arbeitsmappe geschützt
27.12.2006 11:51:55
Holli
Hallo zusammen,
ich möchte ein Makro nur dann ausführen, wenn die Arbeitsmappe geschützt ist. Kann mir jemand sagen, wie dafür der Code lautet? Mit "If ActiveWorkbook.Protect = True" klappts offenbar nicht.
Gruß
Holli
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Per VBA prüfen, ob Arbeitsmappe geschützt
ransi
HAllo Holli
Da gibt es mehrere Schutze.
(Ohne Anspruch auf Vollständigkeit)


Option Explicit
Public Sub test()
MsgBox ActiveWorkbook.ReadOnly
MsgBox ActiveWorkbook.ProtectStructure
MsgBox ActiveWorkbook.ProtectWindows
MsgBox ActiveWorkbook.VBProject.Protection
End Sub


welchen meinst du?
ransi
Anzeige
AW: Per VBA prüfen, ob Arbeitsmappe geschützt
27.12.2006 12:09:56
Holli
Hallo Ransi,
ProtectStructure war das, was ich suchte.
Vielen Dank!!!
Gruß
Holli
;
Anzeige
Anzeige

Infobox / Tutorial

Überprüfung des Arbeitsmappen-Schutzes mit VBA


Schritt-für-Schritt-Anleitung

Um mit VBA zu überprüfen, ob eine Arbeitsmappe geschützt ist, kannst du den folgenden Code verwenden. Dieser Code zeigt, wie du den Schutz der Struktur der Arbeitsmappe abfragen kannst:

Option Explicit

Public Sub CheckWorkbookProtection()
    If ActiveWorkbook.ProtectStructure Then
        MsgBox "Die Arbeitsmappe ist geschützt."
    Else
        MsgBox "Die Arbeitsmappe ist nicht geschützt."
    End If
End Sub

Dieser VBA-Code nutzt die ProtectStructure-Eigenschaft des ActiveWorkbook, um zu überprüfen, ob die Struktur der Arbeitsmappe geschützt ist. Du kannst diesen Code in ein Modul in Excel einfügen und das Makro ausführen, um den Schutzstatus zu überprüfen.


Häufige Fehler und Lösungen

  • Falsche Verwendung von ActiveWorkbook.Protect
    Wenn du ActiveWorkbook.Protect = True verwendest, funktioniert das nicht, da Protect keine einfache Boolean-Überprüfung ist. Stattdessen solltest du ProtectStructure oder ProtectWindows verwenden.

  • Eingeschränkte Berechtigungen
    Achte darauf, dass du die notwendigen Berechtigungen hast, um den Schutz der Arbeitsmappe zu überprüfen. Wenn du nicht der Besitzer der Datei bist, könnte es sein, dass dir der Zugriff auf diese Informationen verweigert wird.


Alternative Methoden

Du kannst auch die ThisWorkbook-Objektvariable verwenden, um spezifisch auf die Arbeitsmappe zuzugreifen, in der dein VBA-Code ausgeführt wird. Hier ein Beispiel:

Option Explicit

Public Sub CheckThisWorkbookProtection()
    If ThisWorkbook.ProtectStructure Then
        MsgBox "Diese Arbeitsmappe ist geschützt."
    Else
        MsgBox "Diese Arbeitsmappe ist nicht geschützt."
    End If
End Sub

Diese Methode ist besonders nützlich, wenn du sicherstellen möchtest, dass du den Schutz der aktuellen Arbeitsmappe überprüfst, unabhängig davon, welche Arbeitsmappe gerade aktiv ist.


Praktische Beispiele

Hier ist ein weiteres Beispiel, das zusätzlich den Schutz von Fenstern und der VB-Projekt-Schutz überprüft:

Option Explicit

Public Sub CheckAllProtections()
    Dim msg As String
    msg = "Schutzstatus der Arbeitsmappe:" & vbCrLf
    msg = msg & "Struktur geschützt: " & ActiveWorkbook.ProtectStructure & vbCrLf
    msg = msg & "Fenster geschützt: " & ActiveWorkbook.ProtectWindows & vbCrLf
    msg = msg & "VBA-Projekt geschützt: " & ActiveWorkbook.VBProject.Protection

    MsgBox msg
End Sub

Dieses Beispiel bietet eine umfassende Übersicht über den Schutzstatus der Arbeitsmappe und ist hilfreich, um alle relevanten Informationen auf einen Blick zu sehen.


Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler in deinem VBA-Code zu vermeiden.
  • Teste deinen VBA-Code in einer Kopie deiner Arbeitsmappe, insbesondere wenn du mit geschützten Inhalten arbeitest.
  • Dokumentiere deine Makros gut, damit du später nachvollziehen kannst, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Warum funktioniert mein Code nicht?
Stelle sicher, dass du die richtigen Eigenschaften (ProtectStructure, ProtectWindows, etc.) verwendest und dass der VBA-Editor die notwendigen Berechtigungen hat.

2. Kann ich den Schutz der Arbeitsmappe aufheben?
Ja, du kannst den Schutz mit der Methode ActiveWorkbook.Unprotect aufheben, sofern du das Passwort kennst.

3. Funktioniert dies in allen Excel-Versionen?
Ja, dieser Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren. Achte darauf, dass der VBA-Editor aktiviert ist.

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