Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
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
Inhaltsverzeichnis

Makro mit Makro ändern (mit VBAProject Kennwort)

Makro mit Makro ändern (mit VBAProject Kennwort)
04.05.2015 14:05:19
andy
Hallo Zusammen,
ich möchte gerne per VBA in mehreren hundert, mit VBAProject Kennwort geschützten, Dateien einen VBA Code ändern. Soweit sogut.
Leider funktioniert die Aufhebung des VBAProject Kennwort-Schutzes nur als eigenständiges Makro, welches "von Hand" gestartet werden muß
siehe hier:

Sub VBA_SchutzAufheben()
'Dieses Makro funktioniert nicht mit anderen VBA Befehlen
'und muss daher immer explizit ausgeführt werden.
SendKeys ("%{f11}")
SendKeys "^r{Tab 7}" '^r entspricht "STRG"+ "r"
'Tab7 = 7xTabulator um auf das zu ändernde Project
'zu gelangen
SendKeys ("{Enter}")
SendKeys ("VBAKW") 'VBA Kennwort
SendKeys ("{Enter}")
SendKeys "^~%{F11}", True 'zurück zur Excel-Oberfläche
End Sub

Hat jmd. eine Idee, mit welchem Befehl man den VBAProject Schutz noch aufheben kann? Und diesen Befehl ggf. in ein bestehendes Makro einbinden kann?
Danke für Eure Antworten!
Gruß andy

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro mit Makro ändern (mit VBAProject Kennwort)
04.05.2015 14:09:56
Hajo_Zi
Hallo Andy,
warum nicht einfach in Deinem Makro
VBA_SchutzAufheben
?

Makro mit Makro ändern (mit VBAProject Kennwort)
04.05.2015 16:16:18
andy
Hallo Hajo,
danke für die schnelle Antwort.
Leider funktioniert die SENDKEYS-Methode (zumindest bei mir) nicht mit anderen Makros.
Habe sogar schon "Wartezeiten" eingestellt siehe:
Sub AllInOne()
Call DateiÖffnen
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5)
Call VBA_SchutzAufheben
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5)
Call VBAZeileÄndern
End Sub
Nach Ausführung kommt die Fehlermeldung Laufzeitfehler '50289' Die Operation kann nicht durchgeführt werden, solange das Projekt geschützt ist
Wie gesagt, bei manueller Ausführung der Makros läuft alles problemlos durch!
Gruß Andy

Anzeige
AW: Makro mit Makro ändern (mit VBAProject Kennwort)
05.05.2015 08:20:12
Luschi
Hallo andy,
bei mir läuft Windows 8.1 mit Excel 2003, 2010 und 2013.
Bei keiner dieser Varianten läuft Dein Makro und das aus folgenden Gründen:

- ab Windows-Vista hat M$ den Befehl 'Application.SendKeys' entschärft
- d.h. nicht alle Tastenkombination laufen noch so, wie lt. Vba-Hilfe beschrieben
- bestimmte Tastenkombinationen werden von Betriebssystem abgefangen
- google mal nach 'vba vista sendkeys' und die Klagelieder nehmen kein Ende
- Ersatz:
Dim WshShell As Object
Dim sVba As String
sVba = "%{f11}^r ...usw..."
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys sVba, True
- seit Windows-7 mag Vba keine aufgesplitterten SendKeys-Befehle so gern
wie in Deinem Code
- es muß ein Gesamtstring zusammen gebastelt werden und dann auf die Reise geschickt werden
- "^r{Tab 7}~abcde~" erwartet, das das Vba-Projekt genau an der richtigen Stelle im Vba-Editor
aufgelistet ist, ansonsten geht es schief
- deshalb bastle ich in 1er Schleife diesen Code stückchenweise zusammen und frage nach
jedem SendKeys-Befehl das jetzt aktive VbaProjekt ab; Application.VBE.ActiveVBProject. _
Filename
- bis Windows-7 funktionierte das auch wunderbar, aber seit Windows-8 läuft diese
Schleife nicht mehr sauber durch und mal klappt's oder auch nicht.
Gruß von Luschi
aus klein-Paris
PS: mein Code liegt in einem AddIn
Welches Betriebssystem benutzt Du denn?

Anzeige
Makro mit Makro ändern (mit VBAProject Kennwort)
05.05.2015 09:42:02
andy
Hallo Luschi,
danke für deine Ausführungen. Ich nutze Windows7 als Betriebssystem. Und wie gesagt, das von mir erstellte Makro funktioniert ja auch, nur nicht im Zusammenspiel mit anderen Makros!
Gruß
andy

AW: Makro mit Makro ändern (mit VBAProject Kennwort)
06.05.2015 07:41:57
Luschi
Hallo Andy,
ich kann da nur mit dem Kopf schütteln, wenn das bei Dir unter Windows7 noch so klappen soll. Kannst Du mal eine Demodatei bereitstelle, in der das bei noch noch klappt.
Gerade {Tab 7} ist doch so von Zufall abhängig, denn jede weitere geöffnete Arbeitsmappe/installiertes AddIn verschiebt das gewünschte Vba-Projekt im Vba-Explorer.
Und das Absetzen von Einzel-Sendkeys klappt seit Windows7 bei mit überhaupt nicht mehr.
Bis Windows7 habe ich das auch immer über das Vba-Projektplorer-Menü gemacht "...%xi...", doch Windows 8/8.1 fängt die Tastenkopmbination Alt+x (%x) ab, egal ob mit Alpplication.SendKeys oder WshShell.SendKeys.
Gruß von Luschi
aus klein-Paris
Anzeige

18 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige