Wie starte ich ein Makro von außerhalb?

pglw

Erfahrenes Mitglied
Tag,

in einer Excel-Datei hab ich im Modul ein kleines Makro liegen. Wenn ich nun in Powerpoint einen Command-Button drücke soll folgendes passieren:

1.) Die betreffende Excel-Datei soll geöffnet werden (habe ich bereits gelöst)
2.) Nun soll aber auch das Makro namens "Start" in der Excel-Datei gestartet werden.

Also von Powerpoint eine xls öffnen und gleich das Makro in ihr starten.

Könnt ihr mir sagen wie ich das machen muss?

Grüsse
PGLW
 
Da müsste es in Excel ein Event geben, das beim Öffnen ausgelöst wird. Falls das Makro generell beim öffnen der Datei ausgeführt werden soll, kannste das da reinkopieren. Falls nicht brauchste noch irgend eine Abfrage, wer denn jetzt das File geöffnet hat (eventuell einfach vor dem aufrufen in Powerpoint irgendein Wert (Registry?) temporär setzen und dann im Excel-Makro abfragen ob dieser Wert gesetzt ist. Falls ja, das Makro ausführen und dann den Wert wieder disablen, auf False setzen oder löschen.
 
Hi schachmat,

den Code hatte ich natürlich auch schon reinkopiert in on workbook open. Das Problem dabei ist, wie Du schon gesagt hast, dass das Makro dann jedes Mal ausgeführt wird. Es startet also auch dann, wenn man die xls per Doppelklick öffnet und nicht nur dann, wenn sie von Powerpoint aus angesprochen wird.

Dein zweiter Vorschlag versucht ja genau darauf einzugehen, allerdings ist mir nicht klar, wie beim Start der xls geprüft werden kann, ob ein bestimmter Wert gesetzt wurde. Ich habe mich darum dazu entschieden das Problem zu umschiffen, und zwar so:

Die xls enthält nun keinerlei Code mehr, der liegt komplett in Powerpoint. Im Click-Ereignis des CommandButtons mache ich folgendes, um auf die Excel-Datei zuzugreifen:

Dim xlApp as Object

Const XLSName = "C:\Dokumente und Einstellungen\UserXY\Desktop\hier.xls"
Set xlApp = GetObject(XLSName)

xlApp.Worksheets(1).Range("A1:B2").CopyPicture
....

dann noch der Code was damit gemacht werden soll.


Im Prinzip steht also der gesamte Code für das Excel-Makro schon in Powerpoint.


Was mir aber noch nicht klar ist, ist wie ich einen Bereich einer Tabelle aus Excel kopieren und auf einer Powerpoint -Folie einfügen kann, daß sie dort nicht als Bild eingefügt wird, sondern eingebettet( d.h. bei einem Klick darauf kann ich die einzelnen Zellen noch bearbeiten). Das ist ja leider nicht möglich, wenn ich die Tabelle als Grafik einfüge.

Grüsse
pglw
 
über die Cell.Text / Cell.Value Eigenschaften kannst du die Werte ändern.

Bei dem Wert setzen dachte ich an einen Eintrag in der Registry, der auf True gesetzt wird, bevor die Mappe aus Powerpoint gestartet wird und dann im Excel-Makro wird abgefragt ob der Wert True ist und je nachdem der Rest ausgeführt oder eben nicht. Falls er ausgeführt wird natürlich den Wert wieder auf False setzen, da das Makro sonst jedesmal ausgeführt wird.
 
Zurück