Supportnet / Forum / Tabellenkalkulation
Makro einer anderen Datei ausführen lassen
Frage
Hallo alle,
ich habe die Dateien Mappe1.xls mit Makro1 und Mappe2.xls mit Makro2 im gleichen Verzeichnis. Makro1 ist einfach und funktioniert. Makro2 sieht folgendermaßen aus:
Sub Makro2()
[list] dp = ActiveWorkbook.Path
dl = Left(dp, 3)
ChDrive dl
ChDir dp
name = "Mappe1.xls"
Workbooks.Open name
Application.Run "Mappe1.xls!Makro1"
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=True
Application.DisplayAlerts = True[/list]
End Sub
Makro2 in Mappe2 ruft also Makro1 in Mappe1 auf. Bis hierhin funktioniert alles bestens. Ich möchte Makro2 gern so verändern, dass auf beliebiege Dateien mit jeweils vorhandenem Makro1 zugegriffen werden kann.
Nun mein Problem: Wenn ich die Zeile
[list][b]Application.Run "Mappe1.xls!Makro1"[/b][/list]
ersetze durch
[list][b]mak = Chr(34) & name & "!Makro1" & Chr(34)
Application.Run mak[/b][/list]
funktioniert es nicht mehr!
Wer kann helfen?
Gruß peko
Antwort 1 von meinTipp
Hallo peko,
mak =name & "!Makro1"
definiert schon einen String.
Lasse den Rest weg.
Nur so als Anmerkung: verwende die Option Explicit und definiere die Typen deiner Variablen. Das vermeidet einige Fehler (z.B. Tippfehler).
Gruss Rolf
mak =name & "!Makro1"
definiert schon einen String.
Lasse den Rest weg.
Nur so als Anmerkung: verwende die Option Explicit und definiere die Typen deiner Variablen. Das vermeidet einige Fehler (z.B. Tippfehler).
Gruss Rolf
Antwort 2 von coros
Hallo Peko,
lass die Chr()-Funktion am Anfang und Ende weg, dann funktionierts auch. Deine Befehlszeilen müssen dann wie folgt aussehen:
Ich hoffe, Du kommst klar. Bei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
lass die Chr()-Funktion am Anfang und Ende weg, dann funktionierts auch. Deine Befehlszeilen müssen dann wie folgt aussehen:
mak = Name & "!Makro1"
Application.Run makIch hoffe, Du kommst klar. Bei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von peko
Hallo Rolf und Oliver,
ich danke Euch ganz herzlich. Eure Hinweise haben mir auf jeden Fall Zeit bei der Fehlersuche erspart.
Trotzdem bleibt etwas unklar: Bei
steht der eigentliche String Mappe1.xls!Makro1 doch auch noch zusätzlich in Anführungsstrichen!
???
Liebe Grüße
Peter
ich danke Euch ganz herzlich. Eure Hinweise haben mir auf jeden Fall Zeit bei der Fehlersuche erspart.
Trotzdem bleibt etwas unklar: Bei
- Application.Run "Mappe1.xls!Makro1"
steht der eigentliche String Mappe1.xls!Makro1 doch auch noch zusätzlich in Anführungsstrichen!
???
Liebe Grüße
Peter

