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

VBA Modul auf Passwortschutz prüfen

Forumthread: VBA Modul auf Passwortschutz prüfen

VBA Modul auf Passwortschutz prüfen
11.08.2025 14:22:55
mjbralitz
Ich habe mit der Suche keine vernünftige Antwort gefunden.
Ich habe eine Excel - Datei mit Makros erstellt und will das VBA Modul mit einem Passwort schützen. So soll die unbeabsichtigte Veränderung durch Kollegen verhindert werden. Nun weiß ich ja, dass dies nicht sicher ist. Meinetwegen dürften das auch die Kollegen machen, nur ist es wichtig, dass die Datei bei allen gleich funktioniert.
Ich möchte daher beim Start von Excel prüfen, ob noch ein Passwort (egal welches, meinetwegen auch ganz spezielles) vergeben ist und (falls es entfernt wurde) eine Warnmeldung ausgeben.
Ich habe aktuell keine Idee, wie ich beim Start prüfe, ob noch ein Passwort vergeben ist!
Eine erste Idde war mal:
If Application.ActiveWorkbook.VBProject.Protection = 0 Then

msg = MsgBox("Achtung, die Datei wurde manipuliert! Änderung sind nur durch Admin zulässig! Bitte nutzen Sie nur die aktuelle Version, welche durch die HPol zur Verfügung gestellt wurde!", vbOKOnly)

Hier bekomme ich Laufzeitfehler 1004, Methode 'VBProject' für das Objekt'_Workbook' ist fehlgeschlagen. Ich bekam auch schon die Meldung programmatische Zugriff ist fehl geschlagen.
Auch die Version statt 0 --> vbtext_pp_locked funktioniert nicht.
PS: Code würde in "Diese Arbeitsmappe Workbook_Open" rein kommen.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Modul auf Passwortschutz prüfen
11.08.2025 14:45:46
MCO
Mahlzeit!

Application.ActiveWorkbook.VBProject.protection gibt 1 zurück, wenn die Anzeige des Projektes ebenfalls ausgeblendet ist.
Das solltest du nutzen können...

Gruß, MCO
AW: VBA Modul auf Passwortschutz prüfen
11.08.2025 16:00:42
Der Steuerfuzzi
Hallo,

eventuell musst Du in den Optionen unter Trustcenter den Haken für "Zugriff auf das VBA Projektmodell vertrauen" setzen.

Viele Grüße
Michael
Anzeige
AW: VBA Modul auf Passwortschutz prüfen
11.08.2025 17:08:25
Uduuh
Hallo,
Protection ist 1 solange das Projekt ausgeblendet ist, sonst 0. Du kannst beim Start nur auf 0 oder 1 prüfen. Was anderes geht nicht.

Programmatischer Zugriff: Dem musst du im TrustCenter bei den Makroeinstellungen vertrauen. Das musst du auf allen Rechnern von Hand machen! Ansonsten gibt es einen Fehler beim Zugriff. Von daher ist dein Vorhaben zum scheitern verurteilt.

Gruß aus'm Pott
Udo
Anzeige
Falscher Ansatz!
11.08.2025 17:33:40
RPP63
Moin!
Dir wurde ja bereits geschrieben, dass Dein Ansatz sich wegen des expliziten programmatischen Zugriffs nicht durchsetzen lässt.

Du schreibst von "Kollegen", heißt, die Datei wird innerhalb einer Firma genutzt.
Ich würde den VBA-Code in ein Add-In auslagern.
Dieses wird in Eure Vorlage eingebunden.
Das Add-In muss sich dann in einem Verzeichnis befinden, auf das die Kollegen nur Lesezugriff haben.

Im Firmennetzwerk brauchst Du nur ein Add-In.
Wenn die Rechner autark sind, musst Du halt an einmalig an jeden Rechner ran.
Netzwerk hat den Charme, dass man das Add-In jederzeit austauschen oder "updaten" kann.

Eine rudimentäre Mini-Anleitung findest Du hier:
https://www.clever-excel-forum.de/Thread-Excel-AddIn-mit-Makros-erstellen

Gruß Ralf
Anzeige
AW: Falscher Ansatz!
12.08.2025 10:02:04
mjbralitz
Vielen Dank für die vielen und schnellen Antworten!!!
Die Rechte, die ich dafür bei uns bräuchte, habe ich nicht. Ich werde wahrscheinlich nur eine Warnung beim Start (Makros müssen ja durch den Anwender aktiviert werden, um die Datei zu nutzen) einblenden.
Letzendlich darf jeder alle meine Lösung (Funktionen und VBA) einsehen und auch gern selbst weiter nutzen. Die Datei soll nur nicht unwissentlich verändert werden (Schutz wird daher schon gesetzt). Für diejenigen, die es unbedingt probieren wollen die Warnung, dass die Daten dann nicht mehr stimmen können.

Super! Bestes Forum! Immer wieder! :)
Anzeige
AW: VBA Modul auf Passwortschutz prüfen
11.08.2025 15:29:16
mjbralitz
wenn ich das so umschreibe (?):
If Application.ActiveWorkbook.VBProject.Protection = 1 Then


bekomme ich erst die Meldung: prgrammatische Zugriif ist nicht sicher und beim zweiten versuch: dann wieder:Laufzeitfehler 1004, Methode 'VBProject' für das Objekt'_Workbook' ist fehlgeschlagen.
Anzeige
AW: VBA Modul auf Passwortschutz prüfen
11.08.2025 16:14:02
Yal
Hmm...

Protection liefert nicht mehr 1, wenn Du das Passwort eingegeben hast. Wenn Du den Code in eigenen Workbook eingeben und laufen lassen kannst, dann ist Protection = 0
Wenn das "ActiveWorkbook" keine VBProject hat, wird es auch keine "Protection" geben, worauf man greifen kann.

Probiere aus einem anderen Workbook, je mit dem Zustand VBA-offen (pw ist eingegeben worden) und VBA-gesperrt:

Sub test()

Dim W As Workbook
For Each W In Workbooks
Debug.Print W.Name, W.VBProject.Protection
Next
End Sub


VG
Yal
Anzeige
Das geht auch ohne...
12.08.2025 10:54:45
Case
Moin :-)

... den programmatischen Zugriff im TrustCenter zu aktivieren. ;-)

Eine XLSM-Datei ist nichts anderes als ein ZIP-ähnlich aufgebauter Container mit Dateien und Verzeichnissen. ;-)
In der Datei vbaProject.bin steckt der VBA Code inklusive des Schutzstatus. ;-)

Mit etwas Aufwand kann man den Status auslesen. ;-)

Du musst im PROJECT-Stream nach bestimmten Kürzeln suchen (DPX=, CMG=, GC=, MD=, DPB=) und dann entsprechend reagieren. ;-)

Testen kannst du das, indem du einen binären Vergleich einer Datei machst, bei der das Kennwort gesetzt ist und dann entfernet wurde. ;-)

Das kann sich natürlich in den unterschiedlichen Excelversionen ändern und bei XLSB-Dateien musst du auch etwas anders vorgehen. Aber es geht. Frage ist nur, ob das dafür den Aufwand lohnt. ;-)

Servus
Case
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige