Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro in anderem Wbk starten

Makro in anderem Wbk starten
21.08.2007 02:00:58
Günter
Hallo Zusammen,
ich habe folgende Aufgabe:
- in einer Mappe stehen Links zu verschiedenen Excel-Dateien (Quelle)
- die Inhalte dieser Quellen sollen jeweils in einer neuen Excel-Vorlage übertragen und gespeichert werden
- in der Vorlage gibt es ein Makro, das auf die bereits geöffnet Quelle zugreift, alle Daten in die Vorlage schiebt , unter einem neunen Namen speichert und sich sowie die Quell-Datei schließt
- ab da gehts zum nächsten Link (Quelle öffnen, Vorlage öffnen, Makro, ...) bis alle Links durch sind
Mein Problem ist, dass ich zwar alle Dateien geöffnet bekomme (Quelle und Vorlage) aber das Makro aus der Vorlage nicht startet. Ich habe dieses Makro in der Vorlage unter 'DieseArbeitsmappe' in 'Private Sub Workbook_Open()' eingebunden.
Die Quelle und die Vorlage rufe ich mit
Workbooks.Open Filename:=sFile ' Quelle
Workbooks.Open Filename:=pFile ' Vorlage
auf.
Wenn ich die Vorlage mit der 'Hand' öffnen und 'Private Sub Workbook_Open()' manuell starte funktioniert alles.
Gibt es die Möglichkeit über den 'open'-Befehl auch gleich ein Makro mit zu starten?
Habt Ihr vielleicht eine Idee?
Danke im Voraus
Günter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in anderem Wbk starten
21.08.2007 06:03:00
Beverly
Hi Günter,
schreibe dein Makro in ein allgemeines Modul und rufe es hiermit auf

Workbooks(pFile).Application.Run (pFile & "!DeinMakro")


________________________________________

AW: Makro in anderem Wbk starten
21.08.2007 08:16:23
Günter
Hallo Karin,
danke für Deinen Hinweis.
Ich habe meinen Aufruf wie Du angegeben hast umgebaut
Die komplette Routine sieht jetzt so aus:

Sub start()
Dim Patch As String
Dim Pfad As String
Dim pFile As String
Dim sFile As String
Pfad = Worksheets("Parameter").Cells(5, 2).Value
Patch = Worksheets("Parameter").Cells(6, 2).Value
pFile = Pfad & "\" & Patch
If Dir(pFile) = "" Or pFile = "" Then
MsgBox "Patch-Datei " & vbNewLine & sFile & vbNewLine & _
" wurde nicht gefunden oder ist nicht angegeben!"
Exit Sub
End If
sFile = "c:\Test\Beispiel.xls"
Workbooks.Open Filename:=sFile
Workbooks(pFile).Application.Run (pFile & "!Auto_start")
End Sub


Ich bekommen bei Workbooks(pFile).Application.Run (pFile & "!Auto_start") einen Lauzeitfehler '9' mit 'Index außerhalb des gültigen Bereichs'.
Was ist der Grund?
Gibt es auch die Möglichkeit, beim Aufruf des Makros Parameter zu übergeben [z.B. ' Auto_start("ja")]?
Gruß
Günter

Anzeige
AW: Makro in anderem Wbk starten
21.08.2007 08:41:00
Beverly
Hi Günter,
dieser Laufzeitfehler tritt auf, wenn das betreffende Objekt nicht gefunden wird. Wie ist der Dateiname in der Zelle definert - mit ".xls" oder ohne?
Meines Wissens können keine Parameter übergeben werden. Du musst sie in der anderne Arbeitsmappe mit Bezug auf die Quellarbeitsmappe definieren.
Bis später,
Karin

AW: Makro in anderem Wbk starten
21.08.2007 08:50:48
Günter
Hallo Karin,
ich habe es mit und ohne '.xls' probiert.
Es kommt jedesmal der gleiche Laufzeitfehler '9'.
Die XLS.Datei 'sFile' und das Makro sind definitiv da.
Noch eine Idee?
Gruß
Günter

Anzeige
AW: Makro in anderem Wbk starten
21.08.2007 08:59:00
Renee
Hi Günter,
In Deinem Code sehe ich nirgends einen Open des Workbooks pFile!
Greetz Renee

AW: Makro in anderem Wbk starten
21.08.2007 09:26:21
Günter
Hallo Zusammen,
Ich habe es jetzt mit den verschiedenen Ideen hinbekommen.
Mein Code sieht jetzt so aus (siehe Bemerkungen) und funktioniert top!

Sub start()
Dim Patch As String
Dim Pfad As String
Pfad = Worksheets("Parameter").Cells(5, 2).Value
Patch = Worksheets("Parameter").Cells(6, 2).Value
pFile = Pfad & "\" & Patch
If Dir(pFile) = "" Or pFile = "" Then
MsgBox "Patch-Datei " & vbNewLine & sFile & vbNewLine & _
" wurde nicht gefunden oder ist nicht angegeben!"
Exit Sub
End If
sFile = "c:\Test\Beispiel.xls"
Workbooks.Open Filename:=sFile
Workbooks.Open Filename:=pFile      ' Öffnen hinzugefügt!
Workbooks(Patch).Application.Run ("'" & Patch & "'" & "!Auto_start")
' "'" hinzugefügt und nur noch Wbk-Name ohne Pfad angegeben
End Sub


Danke an alle!
Gruß
Günter

Anzeige
AW: Makro in anderem Wbk starten - Ergänzung
21.08.2007 08:51:00
Beverly
Hi Günter,
da ich nicht weiß, was und wie du mit den Paramtern weiterarbeiten möchtest - schau mal in die VBA-Hilfe zum Stichwort "Run (Methode)". Vielleicht wäre das ja auch eine Möglichkeit.
Bis später,
Karin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige