Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA mit Kennwort öffnen, eigenes Projekt

VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 08:25:17
Erich
Hallo EXCEL-Freunde,
habe im Forum eine Lösung für das Öffnen des VBA-Projektes mit Schutz
gefunden:

Sub UnlockedVBAProject()
If Val(Application.Version) > 8 Then
SendKeys _
"%{F11}%xi+{TAB}{RIGHT}{TAB} {TAB}" & _
"{BACKSPACE}{TAB}{BACKSPACE}{TAB}{ENTER}%{q}"
End If
End Sub


Sub LockedVBAProject()
If Val(Application.Version) > 8 Then
SendKeys _
"%{F11}%xi+{TAB}{RIGHT}{TAB} {TAB}" & _
"Paßwort" & "{TAB}" & "Paßwort" & "{TAB}{ENTER}%{q}"
End If
End Sub

in diesem Beitrag:
https://www.herber.de/forum/index.htm?https://www.herber.de/forum/archiv/276to280/t277346.htm
Allerdings besteht das Problem, wenn ich eine Datei öffne, dann wird nicht das
VBA-Projekt meiner Datei sondern ein anderes Projekt angesteuert.
Kann man einen Weg einbauen, dass das Projekt angesprochen wird, das die aktuell
zu öffnende Datei betrifft?
Besten Dank für eine Hilfe.
mfg
Erich

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 09:29:33
Nepumuk
Hallo Erich,
ich kenne keine Möglichkeit ein bestimmtes Projekt zum aktiven Projekt zu machen. Wenn ich den Code für das entsperren ansehe, so kann der auch nicht funktionieren, sobald das Projekt einmal gespeichert wurde. Du kannst aber folgendes machen: In das Projekt, welches du entsperren möchtest, schreibst du folgende Routine:


Option Explicit
Private Sub UnlockedVBAProject()
   If Val(Application.Version) > 8 Then SendKeys "%{F11}%xi" & "Kennwort" & "{ENTER}{TAB 6}{ENTER}%{q}"
End Sub


"Kennwort" musst du durch dein Kennwort ersetzen!!
In die Mappe, welches das Projekt entsperren soll, kommt folgender Code:


Option Explicit
Public Sub test()
    Workbooks.Open "C:\Dokumente und Einstellungen\Administrator\Desktop\Mappe1.xls"
    Application.Run "Mappe1.xls!UnlockedVBAProject"
End Sub


Den Pfad und Mappennamen musst du natürlich noch anpassen. Der VBA - Editor muss geschlossen sein, sonst funktioniert es nicht.
Hier noch ein Code, den das Editorfenster schließt:


Option Explicit
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As LongAs Long
Private Declare Function IsWindowEnabled Lib "user32" (ByVal hwnd As LongAs Long
Public Sub Editor_schliessen()
    If IsWindowEnabled(Application.VBE.MainWindow.hwnd) Then DestroyWindow Application.VBE.MainWindow.hwnd
End Sub


Gruß
Nepumuk
Anzeige
AW: VBA mit Kennwort öffnen, eigenes Projekt
Erich
Hallo Nepumuk,
besten Dank; leider erhalte ich im entscheidenden Moment eine Fehlermeldung:
Laufzeitfehler 1004
MicrosoftExcel kann das Macro 'Mappe1.xls!UnlockedVBAProject' nicht finden
('Mappe1' habe ich natürlich angepasst)
Die Datei 'Mappe1' wird noch geöffnet.
mfg
Erich
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 16:54:40
Nepumuk
Hallo Erich,
damit die Run - Methode das Makro ausführen kann, darf im Mappennamen kein Leerzeichen, kein Umlaut sowie ß sein. Ersetze diese durch einen Unterstrich / ae,oe,ue / ss.
Gruß
Nepumuk
AW: VBA mit Kennwort öffnen, eigenes Projekt
Erich
Hallo Nepumuk,
der Name der Mappe ist: testvba.xls
mfg
Erich
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 17:10:39
Nepumuk
Hallo Erich,
und das Makro befindet sich in eine Standardmodul?
Gruß
Nepumuk
Anzeige
AW: VBA mit Kennwort öffnen, eigenes Projekt
Erich
Hallo Nepumuk,
ja; ich gehe wie folgt vor:
- VBA-Editor geschlossen
- testvba.xls geschlossen
- aus der Datei, in der der Code ist, öffne ich mit ALT+F8 die Makros und aktiviere
mfg
Erich
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 17:31:25
Nepumuk
Hallo Erich,
Das gibt's doch gar nicht. Kopier mal die beiden Makros in zwei leere Mappen, benenne diese nach den Originalmappen, packe sie mit Winzip in einen Ordner und lade diesen auf den Server.
Gruß
Nepumuk
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 18:01:41
Nepumuk
Hallo Erich,
Problem erkannt! Das Makro "UnlockedVBAProject" muss in die Mappe "testvba.xls". Nur wenn es aus diesem gestartet wird, ist dessen VBProjekt das aktive Projekt und kann mit der SendKeys-Anweisung entsperrt werden. Anders geht es definitiv nicht! Ich würde dir übriges die Verwendung eines AddIns empfehlen, das kann ganz einfach ausgetauscht werden und du musst den Projektschutz nicht aufheben.
Gruß
Nepumuk
AW: VBA mit Kennwort öffnen, eigenes Projekt
Erich
Hallo Nepumuk,
das wars!
Besten Dank - und eine ergänzende Frage:
Der Code funktioniert bei
If Val(Application.Version) > 8 Then
Gibt es den passenden Code auch für Den Tipp mit dem AddInn habe ich leider nicht ganz verstanden "einfach ausgestauscht werden"?
Besten Dank jedenfalls!
mfg
Erich
Anzeige
AW: VBA mit Kennwort öffnen, eigenes Projekt
17.10.2004 18:30:23
Nepumuk
Hallo Erich,
1. In den Vorgängerversionen gab es den Projektschutz so noch nicht.
2. Ich nehme an, dass du den Projektschutz aufheben musst, um eine Änderung per Code im Code zu machen. Das würde sich durch den Einsatz eines AddIns erübrigen, da dies eine eigenständige Datei ist, die einfach gelöscht und durch eine neue ersetzt werden kann.
Gruß
Nepumuk
AW: VBA mit Kennwort öffnen, eigenes Projekt
Erich
Hallo Nepumuk,
allerbesten Dank für die Lösung und Antworten.
Den Vorschlag AddIn werde ich mir mal überlegen; evtl. melde ich mich da im Forum mal.
War heute dank Deiner Hilfe wieder ein "erfolgreicher Sonntag", da Problem gelöst!
(Falls Du mir bei einem weiteren Problem helfen könntest, wäre ich ebenfalls
dankbar; habe im MS-Office-Forum folgende Frage eingestellt - bisher ohne Lösung:
http://www.ms-office-forum.net/forum/showthread.php?t=142017 )
mfg
Erich
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige