online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon peko vom 20.02.2019, 15:15 Options

Makro einer anderen Datei ausführen lassen

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()
    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

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
    Application.Run "Mappe1.xls!Makro1"

ersetze durch
    mak = Chr(34) & name & "!Makro1" & Chr(34)
    Application.Run mak

funktioniert es nicht mehr!

Wer kann helfen?

Gruß peko


Antwort schreiben

Antwort 1 von meinTipp vom 22.02.2019, 08:12 Options

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

Antwort 2 von coros vom 22.02.2019, 08:27 Options

Hallo Peko,

lass die Chr()-Funktion am Anfang und Ende weg, dann funktionierts auch. Deine Befehlszeilen müssen dann wie folgt aussehen:

[b]mak = Name & "!Makro1"
Application.Run mak[/b]


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.

Antwort 3 von peko vom 23.02.2019, 15:43 Options

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

    Application.Run "Mappe1.xls!Makro1"

steht der eigentliche String Mappe1.xls!Makro1 doch auch noch zusätzlich in Anführungsstrichen!

???

Liebe Grüße
Peter

Ähnliche Themen

Makro in internetseite?
Pes  15.02.2007 - 63 Hits - 1 Antwort

Makro automatisch ausführen
Heinz28  15.03.2007 - 449 Hits - 3 Antworten

Makro soll beliebig viele Datensätze mit ausführen
Beatlefield  26.11.2007 - 101 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Sun Jan 25 18:15:21 2026