Discussion:
Mit SENDKEYS VBAProject-Passwort zurücksetzen
(zu alt für eine Antwort)
Ewald
2006-03-08 08:42:27 UTC
Permalink
Hallo NG,

mit Sendkeys möchte ich das VBAProject-Passwort zurücksetzen, um VBA-Module
zu löschen. Hintergrund: von einer Mappe erstelle ich eine Light-Version.
Die Prozedur:
Sub PWaus()
SendKeys "%{F11}%xi" & "Passwort" & "{ENTER}{TAB 6}{ENTER}", True
End Sub
Beim Löschen der Module tritt Fehler 50289: Die Operation kann nicht
durchgeführt werden, solange das Projekt geschützt ist, auf.
Rufe ich das Makro aus der EXCEL-Oberfläche mit Alt-F8 auf, wird der Schutz
des VBA-Projekts aufgehoben und die Verarbeitung funktioniert.
Der Unterschied ist wohl, das ich den Schutz aufhebe BEVOR nach VB
gewechselt wird. Mein Problem ist dies nun Programmtechnisch zu lösen, woran
ich aber scheitere.
Auch Application.Run "PWaus" führte nicht zum Erfolg.
Danke für jeden Hinweis.

Der Code der "händisch(Alt-F8)" funktioniert:
Public Const Pw1 As String = "test"
Sub PWaus()
'entsperren des VB-Projekts
SendKeys "%{F11}%xi" & Pw1 & "{ENTER}{TAB 6}{ENTER}", True
Exit Sub
End Sub
Sub PWein()
On Error GoTo Fehler
'sperren des VB-Projekts
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{TAB 2}" & Pw1 & "{TAB}" & Pw1 &
"{ENTER}%{F4}"
End Sub
Sub Löschen()
With ActiveWorkbook.VBProject
.vbcomponents.Remove .vbcomponents("Modul2")
End With
End Sub


MfG
Ewald
stefan onken
2006-03-08 10:31:28 UTC
Permalink
Hallo Ewald,
dein "händischer" code funktioniert auch bei mir, auch dann, wenn ich
die drei einzelnen Makros zu einem zusammenfasse. Das Projekt ist
anschließend noch nicht wieder geschützt, das passiert ja erst dann,
wenn die Datei erneut geöffnet wird.

Du hast in deinem posting 2x PWaus, wobei 2 verschiedene Passwörter
("Passwort" und "test") vorkommen. Liegt evtl hier der Fehler?

Gruß
stefan
Post by Ewald
Hallo NG,
mit Sendkeys möchte ich das VBAProject-Passwort zurücksetzen, um VBA-Module
zu löschen. Hintergrund: von einer Mappe erstelle ich eine Light-Version.
Sub PWaus()
SendKeys "%{F11}%xi" & "Passwort" & "{ENTER}{TAB 6}{ENTER}", True
End Sub
Beim Löschen der Module tritt Fehler 50289: Die Operation kann nicht
durchgeführt werden, solange das Projekt geschützt ist, auf.
Rufe ich das Makro aus der EXCEL-Oberfläche mit Alt-F8 auf, wird der Schutz
des VBA-Projekts aufgehoben und die Verarbeitung funktioniert.
Der Unterschied ist wohl, das ich den Schutz aufhebe BEVOR nach VB
gewechselt wird. Mein Problem ist dies nun Programmtechnisch zu lösen, woran
ich aber scheitere.
Auch Application.Run "PWaus" führte nicht zum Erfolg.
Danke für jeden Hinweis.
Public Const Pw1 As String = "test"
Sub PWaus()
'entsperren des VB-Projekts
SendKeys "%{F11}%xi" & Pw1 & "{ENTER}{TAB 6}{ENTER}", True
Exit Sub
End Sub
Sub PWein()
On Error GoTo Fehler
'sperren des VB-Projekts
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{TAB 2}" & Pw1 & "{TAB}" & Pw1 &
"{ENTER}%{F4}"
End Sub
Sub Löschen()
With ActiveWorkbook.VBProject
.vbcomponents.Remove .vbcomponents("Modul2")
End With
End Sub
MfG
Ewald
Ewald
2006-03-08 10:55:58 UTC
Permalink
Hallo Stefan,
Post by stefan onken
Du hast in deinem posting 2x PWaus, wobei 2 verschiedene Passwörter
("Passwort" und "test") vorkommen. Liegt evtl hier der Fehler?
nein daran liegt es nicht, es handelt sich hierbei um Code aus einer
TestMappe und der "richtigen" Mappe.

Gruß
Ewald

Loading...