Mit SAS ein VBA-Makro ansprechen
Transcrição
Mit SAS ein VBA-Makro ansprechen
News Artikel Foren Join Projekte List Links Random Über Redscope Previous Next Startseite › Foren › SAS-Lösungen Mit SAS ein VBA-Makro ansprechen 16 January, 2013 - 07:00 — austria_traveller Hallo Forum, Ich möchte mit SAS ein VBA-Makro (B2010_alles_aktualisieren) ansprechen. Das selbst ist noch kein Problem, allerdings darf das Makro dazu nicht ausgeblendet sein. Die Datei, die dem Makro zugeordnet ist , ist bei mir im xls immer ausgeblendet und da habe ich jetzt das Problem, wie ich im SAS schreiben soll, dass die Datei in xls sich zuerst einblendet, bevor das Makro ausgeführt wird. Soweit bin ich bis jetzt: Options noxwait noxsync; FILENAME CMDS DDE 'EXCEL|SYSTEM'; Data _null_; File CMDS; Put '[RUN("B2010_alles_aktualisieren")]'; Put "[QUIT()]"; run; Quit; Habt ihr eine Idee ? Danke & Beste Grüße Gerhard Foren: SAS-Lösungen Log in or register to post comments Hallo Gerhard, 16 January, 2013 - 09:04 — Frederik_Bloch Hallo Gerhard, was genau meinst du mit "ausgeblendet"? Ist das Workbook nicht aktiv im Vordergrund oder wie meinst du das? Gruß Frederik Log in or register to post comments Ja, genau das. 16 January, 2013 - 12:17 — austria_traveller Ja, genau das. Konnte es aber zwischenzeitlich selbst lösen, indem ich ein zweites vba-Makro gesetzt habe versehen mit der auto_open Funktion. Diese steuert mir dann genau das makro an, dass ich eigentlich ausführen möchte. Dieses zweite Makro kann ich ganz gemütlich von SAS aus ansteuern. Hoffe ich habe es nicht zu holprig geschrieben. Beste Grüße Gerhard Interesshalber; gibt es im SAS eine Möglichkeit eine nicht im Vordergrund befindliche xls-Datei in den Vordergrund zu stellen ? Log in or register to post comments Ich habe Interesse! 16 January, 2013 - 13:13 — Frederik_Bloch Hallo Gerhard, ich habe ebenfalls das Problem und es bisher nur darüber "gelöst", zu verbieten, dass andere Workbooks geöffnet sein dürfen. Kannst du mal dein VBA-Macro präsentieren? Danke! Gruß Frederik Log in or register to post comments Servus Frederik, 18 January, 2013 - 07:01 — austria_traveller Servus Frederik, Sorry für die Verspätung, aber bei uns geht's momentan drunter und drüber. Also du hast ein ausführendes Makro (B2010_alles_aktualisieren). Dann brauchst du noch ein Makro (auto_open_2010), dass dieses ansteuert. Dafür legst du eine neue Tabelle an (xlsm) und schreibst als Makro-Anweisung folgendes rein: Sub auto_open() Application.Run "Makro.xls.xlsm!B2010_alles_aktualisieren" End Sub Die SAS-Anweisung, die das Makro dann ansteuert ist diese: Options noxwait noxsync; /* Falls Excel nicht offen ist, hier die bounds wegnehmen*/ /* DATA _NULL_; RC=SYSTEM('START EXCEL'); RC=SLEEP(5); run; */ FILENAME CMDS DDE 'EXCEL|SYSTEM'; Data _null_; File CMDS; PUT "[OPEN(""D:\...\auto_open_2010.xlsm"")]"; Put "[QUIT()]"; run; Quit; lg gerhard Log in or register to post comments Vielen Dank, Gerhard! Vielen Dank, Gerhard! Log in or register to post comments 18 January, 2013 - 10:12 — Frederik_Bloch