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

VBProject.Protection

Forumthread: VBProject.Protection

VBProject.Protection
09.03.2020 22:36:02
Oliver
VBProject.Protection
Hallo Excelkollegen
ich habe ein Problem mit dem Schützen des VBA-Projectes und benötige Hilfe.
Diesen Code habe ich im : Workbook_Activate()
Private Sub Workbook_Activate()
' VBA Project Ausblenden und mit Passwort versehen
If VBProject.Protection = vbext_pp_none Then
Application.OnKey "%{F11}"
SendKeys "%{F11}%TE+{TAB}{RIGHT}%V{+}{TAB}" & "Test123" & "{TAB}" & _
"Test" & "~%{F11}", True
End If
Wenn ich in Excel mehrere Dateien geöffnet oder AddIns INstalliert habe, dann wir der Senskeys Befehl nicht ab die VBAEntwicklungsumgebung gesendet sondern als Text in eines der Macros.
Wie kann ich denn das ändern so dass der Senskeys Befehl immer in die VBA Umgebung gesendet wird.
Vielen Dank für eure Hilfe
Oliver Breith
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBProject.Protection
09.03.2020 23:45:36
Oliver
Ich habe es schon mal so weit verbessert, dass das Passwort korrekt eingetragen wird. Nun fehlt noch die Aktivierung der Checkbox "Project für Anzeige sperren"
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & "Test123" & _
"{TAB}" & "Test123" & "{TAB}{enter}%q"
Userbild
Anzeige
AW: VBProject.Protection
10.03.2020 08:32:00
Torsten
Hallo Oliver,
also beim englischen Excel ist es Alt+v. Dort sind die Shortcut-Buchstaben auch wie gewohnt unterstrichen.
Userbild
Gruss Torsten
AW: VBProject.Protection
10.03.2020 08:35:26
Torsten
Als weitere Moeglichkeit faellt mir noch ein, dass du nach der Passworteingabe aus dem "Kennwort bestätigen" Feld mit 6 mal Tab zum Projekt sperren Punkt kommst und dann mit einem Leerzeichen den Haken setzen kannst. Kann man ja auch alles ueber SendKeys machen.
Gruss Torsten
Anzeige
AW: VBProject.Protection
11.03.2020 22:09:43
Oliver
Hallo Torsten,
vielen Dank für deine Hilfe.
Ich habe es inzwischen auch gelöst allerdings senden von Tabs und " "
VBA Project Ausblenden und mit Passwort versehen
If VBProject.Protection = 0 Then
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & "Test123" & _
"{TAB}" & "Test123"
SendKeys "{tab}{tab}{tab}{tab}{tab}"
SendKeys " "
SendKeys "{TAB}{TAB}{TAB}{enter}%q"
ActiveWorkbook.Save
End If
Anzeige
nur Zwischenfrage
09.03.2020 23:51:56
Oberschlumpf
Hi Oliver,
wozu ist denn der VBA-Aufwand notwendig?
Wenn ich etwas am Code ändern will, öffne ich den VBE, geb das PW ein und ändere den Code.
Danach speicher ich alles. Das PW + Option für VBA-Proj. nicht sichtbar ist doch weiterhin aktiv.
Ciao
Thorsten
AW: nur Zwischenfrage
10.03.2020 00:23:02
Oliver
Hallo Thorsten,
ich erstelle per AddIns verschiede Excelmacros für Pharmaziebefunde. Wegen QMP Anforderungen müssen diese schreibgeschützt und nicht sichtbar mit Code geschützt werden.
Da wie sehr viele solcher Exceldateinen produzieren wäre eine Lösung per Hand zu aufwendig.
Es klappt ja auch alles nur die Option Project für Anzeige sperren bekomme ich nicht rein.
Anzeige
AW: nur Zwischenfrage
10.03.2020 08:16:24
Nepumuk
Hallo Oliver,
versuch es mal mit Alt+A
Gruß
Nepumuk
AW: nur Zwischenfrage
10.03.2020 08:37:59
mumpel
Pharmaziebefunde in Excel? Ist das Dein Ernst? Da solltest Du ein Programm entwickeln lassen welches allen gesetzlichen Anforderungen entspricht.
Nachtrag
10.03.2020 08:41:38
mumpel
Wenn die Datei einem Unbefugten in die Hände fällt und er sich auch noch gut mit VBA auskennt knackt er Dir das VBA-Kennwort in Sekunden (viele von uns hier können das).
Anzeige
AW: Nachtrag
10.03.2020 09:24:21
Oberschlumpf
Hi Mumpel
DEN Gedanken mit der PW-UNsicherheit bei Excel hatte ich auch, als ich deine vorherige Antwort bzgl gesetzlicher Anforderungen las :-)
Ciao
Thorsten
;
Anzeige

Infobox / Tutorial

VBProject im Excel VBA schützen


Schritt-für-Schritt-Anleitung

Um das VBA-Projekt in Excel zu schützen, kannst du den folgenden Code verwenden. Dieser sollte im Workbook_Activate()-Ereignis platziert werden:

Private Sub Workbook_Activate()
    ' VBA Project Ausblenden und mit Passwort versehen
    If VBProject.Protection = vbext_pp_none Then
        Application.OnKey "%{F11}"
        SendKeys "%{F11}%TE+{TAB}{RIGHT}%V{+}{TAB}" & "Test123" & "{TAB}" & _
                 "Test" & "~%{F11}", True
    End If
End Sub

Achte darauf, dass du das richtige Passwort (hier "Test123") verwendest. Diese Methode stellt sicher, dass dein VBProject geschützt ist, solange Excel nicht mit mehreren Dateien oder Add-Ins überlastet ist.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass der SendKeys-Befehl nicht korrekt in die VBA-Entwicklungsumgebung gesendet wird, wenn mehrere Dateien geöffnet sind.

Lösung: Verwende eine Kombination aus SendKeys und einer gezielten Steuerung der Fenster, um sicherzustellen, dass die Eingaben an die richtige Stelle gesendet werden.

Zusätzlich kann es sein, dass die Checkbox "Project für Anzeige sperren" nicht aktiviert wird. Hier ist ein Beispiel, wie du dies erreichen kannst:

SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & "Test123" & _
         "{TAB}" & "Test123" & "{TAB}{enter}%q"

Alternative Methoden

Eine alternative Methode zur Passwortsicherung deines VBA-Projekts besteht darin, die Passworteingabe manuell über die Benutzeroberfläche vorzunehmen. Dies kann sinnvoll sein, wenn automatisierte Prozesse nicht zuverlässig funktionieren.

Eine andere Möglichkeit ist, das VBA-Projekt in ein Add-In zu konvertieren, was zusätzliche Sicherheit bieten kann.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du sicherstellen kannst, dass dein VBA-Projekt beim Aktivieren des Arbeitsbuchs geschützt wird:

If VBProject.Protection = 0 Then
    SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & "Test123" & _
             "{TAB}" & "Test123"
    SendKeys "{tab}{tab}{tab}{tab}{tab}"
    SendKeys " "
    SendKeys "{TAB}{TAB}{TAB}{enter}%q"
    ActiveWorkbook.Save
End If

Dieses Beispiel zeigt, wie du sowohl das Passwort eingeben als auch die Option "Project für Anzeige sperren" aktivieren kannst.


Tipps für Profis

  • Verwendung von On Error Resume Next: Füge diesen Befehl hinzu, um die Ausführung bei Fehlern fortzusetzen.
  • Feedback geben: Verwende MsgBox, um Rückmeldungen zu erhalten, ob das Projekt erfolgreich geschützt wurde.
  • Testen in einer geschützten Umgebung: Bevor du den Code in produktiven Dateien verwendest, teste ihn immer in einer sicheren Umgebung.

FAQ: Häufige Fragen

1. Warum ist es wichtig, das VBA-Projekt zu schützen?
Ein geschütztes VBA-Projekt verhindert, dass unbefugte Personen den Code einsehen oder ändern können, was besonders wichtig für vertrauliche Informationen ist.

2. Was mache ich, wenn der SendKeys-Befehl nicht funktioniert?
Stelle sicher, dass das richtige Fenster aktiv ist und keine anderen Anwendungen die Eingabe stören. In einigen Fällen kann es auch helfen, den Code in einer Schleife zu wiederholen, bis die Eingabe erfolgreich war.

3. Ist der Schutz von VBA-Projekten 100% sicher?
Nein, der Schutz ist nicht absolut sicher. Geübte Benutzer können den Schutz oft umgehen. Es ist ratsam, zusätzlich Sicherheitsmaßnahmen zu ergreifen, z. B. durch die Verwendung von Add-Ins.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige