Anzeige
Archiv - Navigation
1056to1060
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

Hilfe bei SendKeys

Hilfe bei SendKeys
09.03.2009 17:21:32
Gordon
Moin moin,
ich erstelle per Makro aus einer Excel-Datei eine neue Datei. Die neue Datei enthält auch Makrobefehle. Daher soll von der neuen Datei das VBA-Projekt geschützt werden. Hierzu habe ich mir die SendKey-Befehle rausgesucht und folgenden Code erstellt:

Sub VBA_Passwort_festlegen2()
Dim Pass As String
'VBA-Projekt Passwort setzen
Pass = "123"
Application.VBE.MainWindow.Visible = True
SendKeys "%(x)"
SendKeys "{Down}{Down}{Down}{Down}{ENTER}"
SendKeys "^{PGDN}"
SendKeys "%(a)"
SendKeys "(k)"
SendKeys (Pass)
SendKeys "{Tab}"
SendKeys (Pass)
SendKeys "{Enter}"
End Sub


Wenn ich diesen einfach so per Hand in einer leeren Datei ausführe, klappt das wunderbar. Nur wie kann ich das in meinen Makro-Code packen, so dass diese SendKey-Befehle für die neue Datei gelten. Kann mir jemand das verraten bzw. 'nen Tipp geben?
Gruß
Gordon

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei SendKeys
09.03.2009 17:50:07
Uduuh
Hallo,

so dass diese SendKey-Befehle für die neue Datei gelten.


das geht meines Wissens nicht.
Gruß aus’m Pott
Udo

AW: Hilfe bei SendKeys
09.03.2009 17:53:30
Gordon
Heißt also,
man kann keine Datei (aus einer anderen Datei) erstellen, wo dann das Projekt geschützt ist?
Gruß
Gordon
Anzeige
AW: Hilfe bei SendKeys
09.03.2009 20:06:48
Nepumuk
Hallo Gordon,
das funktioniert nur in der Mappe, in welcher sich der Code befindet. Du musst also die Prozedur in die Mappe kopierst welche du schützen willst.
Gruß
Nepumuk
AW: Hilfe bei SendKeys
10.03.2009 10:11:08
Gordon
Ok,
daran hatte ich auch schon gedacht. Das kopieren ist kein Problem, nur wie führe ich die Prozedur in dem anderen Projekt dann aus, wenn sie in Modul 1 liegt?
Wäre dankbar für 'ne kurze Erläzerung. :-)
Gruß
Gordon
AW: Hilfe bei SendKeys
10.03.2009 11:06:45
Born
Hallo Gordon,
das könnte eventuell mit dem Befehl Application.Run funktionieren.
Gruß,
M. Born
AW: Hilfe bei SendKeys
10.03.2009 11:10:33
Nepumuk
Hallo Gordon,
Beispiel:
Application.Run "Mappe1.xls!MeinMakro"
Wenn du die Mappe noch nicht gespeichert hast, dann natürlich .xls weg lassen!
Gruß
Nepumuk
Anzeige
AW: Hilfe bei SendKeys
10.03.2009 12:14:15
Gordon
Danke,
aber wenn ich das so mache, bekomme ich die Meldung, dass er das Makro nicht finden kann. Das Makro mit dem Namen "Passwort" liegt aber Tabelle2 vor. Wurde also richtig übertragen. Diesen Befehl nutze ich:
Application.Run "Test.xls!Passwort"
Was mache ich falsch?
Gruß
Gordon
AW: Hilfe bei SendKeys
10.03.2009 12:33:49
Nepumuk
Hallo Gordon,
die Routine muss in ein Standardmodul !!!
Gruß
Nepumuk
AW: Hilfe bei SendKeys
10.03.2009 12:53:18
Gordon
Ok,
dann muss ich also noch ein Modul per Makro in der neuen Datei erstellen lassen. Hab eben mal etwas nachgeforscht und das hier gefunden:

Sub Modul_anlegen()
Dim m As Object
Set m = Application.VBE.ActiveVBProject.VBComponents.Add(1)
m.Name = "Modul2"
End Sub


Das klappt ja klappt ja auch wunderbar...aber halt nicht in der neuen Datei, sondern in der Datei, die das Makro ausführt. Wir müßte ich das hier abändern, damit das Modul in der neuen Datei erzeugt wird?
Gruß
Gordon

Anzeige
AW: Hilfe bei SendKeys
10.03.2009 13:19:31
Nepumuk
Hallo Gordon,
so geht's:
Public Sub Beispiel()
    Dim objModul As Object
    Set objModul = Workbooks("Mappe2.xls").VBProject.VBComponents.Add(1)
    objModul.Name = "NewModul"
End Sub

Gruß
Nepumuk
Anzeige
AW: Hilfe bei SendKeys
10.03.2009 14:11:11
Gordon
Ok,
das klappt auch...aber leider immer noch selbes Problem: Bekomme die Fehlermeldung, dass das Makro sich nicht finden läßt.
Bei Application.Run "Test.xls!Passwort" bekomme ich den Laufzeitehler '1004'. Und er sagt:

Microsoft Excel kann das Makro 'Test.xls!Passwort' nicht finden.


AW: Hilfe bei SendKeys
10.03.2009 15:08:24
Tino
Hallo,
ist Deine Sub eventuell als Private gekennzeichnet, musst Du den Ort genauer angeben.
Beispiel.

'Hier befindet sich das Makro im Modul1
Application.Run "'Test.xls'!Modul1.Passwort"
'oder
'Hier befindet sich das Makro im Tabelle1
Application.Run "'Test.xls'!Tabelle1.Passwort"


Gruß Tino

Anzeige
AW: Hilfe bei SendKeys
10.03.2009 15:31:59
Gordon
Ok,
nun hat es funktioniert. Es lag anscheinend daran, dass ich die kleinen Tüttelchen ( ' ) vergessen hatte. Die fehlten aber anscheinend auch bei der ersten Beschreibung von Nepomuk. ;-)
Jetzt lief es einwandfrei durch - ohne Fehlermeldung. Aber leider hängt da immer noch kein PW nun vor! :(
AW: Hilfe bei SendKeys
10.03.2009 16:09:26
Tino
Hallo,
habe mir den Trade nochmal durchgelesen, Du schreibst.
„Das Makro mit dem Namen "Passwort" liegt aber Tabelle2 vor“
Du brauchst kein extra Modul erstellen, Du kannst dieses Makro auch so ansprechen.
Modul Modul1
Option Explicit 
 
Sub testLauf() 
 Application.Run "'Test.xls'!Tabelle2.Passwort" 
End Sub 
 
 
 
 

kommt als Code in die Tabelle2 Deiner Test.xls

Option Explicit 
 
 
Sub Passwort() 
Dim Password As String 
    Password = "xxx" 
    SendKeys "%{F11}" 
    SendKeys "%xi{TAB 9}{RIGHT}{TAB} {TAB}" 
    SendKeys Password 
    SendKeys "{TAB}" 
    SendKeys Password 
    SendKeys "{TAB}{ENTER}" 
    SendKeys "%Dh" 
End Sub 


Eventuell würde ich versuche bei Test.xls die VBA Umgebung vorher zu schützen und neu zu öffnen damit man nicht automatisch in die VBA Umgebung springt.
PS: ich hasse SendKeys, haut mir jedes mal die Num Taste raus.
Gruß Tino

Anzeige
AW: Hilfe bei SendKeys
11.03.2009 11:46:26
Gordon
Funktioniert leider nicht.
Das Makro läuft zwar ohne Fehlermeldung durch, aber statt das VBA-Projekt in der neuen Excel-Datei zu schützen, wirft er mich nur in die Seitenansicht der alten Excel-Datei.
Gruß
Gordon
AW: Hilfe bei SendKeys
11.03.2009 21:51:22
Tino
Hallo,
irgendwie kann ich Dir nicht so richtig folgen (kann auch an mir liegen)
Wie rufst Du, wie im Beispiel das Makro testLauf auf, wenn Du eine neue Datei erstellst?
Gruß Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige