Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
16.08.2011, 12:42 (Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2011 13:22 von win98.)
ja im Taskmanager taucht das EXCEL mehrmals auf, aber dachte das ist weil ich kein Application.Close hab.
Wenn ich Visible.True mach, ist die Excel Datei dann in der Taskleiste sichtbar, aber immernoch ohne Makro.
Ich erzeug eine neue Excel Instanz? Also muss zugeben mit ActiveX kenn ich mich nich so gut aus und hab bisher nur Sachen übernommen. Aber ich dachte bei Workbooks.open gebe ich den Dateipfad der vorhandenen XLS Datei an, damit ich da mein Makro einfügen kann. Ist das nicht so?
hab mal beides in ein vi gemacht, damit ich die selbe referenz hab für die excel application. läuft aber auch nicht
Erstmal: Eine Instanz ist nicht das gleiche wie Workbook.
Schau dir mal das "ActiveX-Objekt öffnen" VI an. Dort gibt es den Eingang "Neue INstanz öffnen (False)". Nichts angeschlossen bedeutet es wird die aktive Excelinstanz genommen... wenn du aber schon mehrere offen hast, k.A. welche dann ausgesucht wird.
Jedes EXCEL im Taskmanager ist ein für sich eigener Prozess, also eine Instanz. Welche Instanz dein Workbook hat.. weißt du so erstmal nicht.
Hast du das Add XLS Macro.vi mal für sich alleine probiert, oder immer nur im Zusammenhang mit deinem Programm?
Du könntest auch die XL-Referenz aus dem TDMS-XL VI rausgeben und damit dann in das Macro vi wieder rein gehen. Dann sparst du dir das öffnen der XL Instanzen.
Dass du eine neue Instanz erzeugst... vielleicht hab ich auch ein True an den Eingang angeschlossen... sonst funktioniert es ja bei mir sowieso nicht.
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
16.08.2011, 13:34 (Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2011 14:10 von jg.)
Ich hab das Add Makro auch mal allein versucht. Pfade eingegebene und gestartet kam aber nix.
Hab jetzt beides in ein VI gemacht, damit ich nich zweimal öffnen muss. Hier hab ich jetzt aber neue Instanz auf True, weil ich ja eine neue brauche wegen der TDMS. Und die will ich gleich fürs das Einfügen des Makros benutzen:
Ich werd morgen nochmal drüber schauen, irgendwas mach ich falsch. Wird bei dir das Makro nur ausgeführt, oder ist es auch richtig in der Excel Datei importiert, dass du es mit ALT+F8 sehen und immer wieder ausführen kannst?
Give a man a fish and he will eat for a day. Teach a man to fish and he will eat for a lifetime.
Hast du es mal mit einer leeren Exceldatei versucht? Also einer, die du in Excel neu anlegst und dann ohne zu ändern abspeicherst...
Das scheint mir der letzte Unterschied zu sein, und so probiere ich es ja auch.
Gruß SeBa
PS: Alternative kannst du ja auch mal eine Exceldatei hochladen, bei der es nicht funktioniert.
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
keine Ahnung.. hab nur die Pfade angepasst und bei mir läufts bis zum Makroaufruf durch.
Wie ist denn deine Makrosicherheit im Excel eingestellt? Bei mir ist niedrig eingestellt.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
17.08.2011, 12:24 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2011 12:26 von win98.)
Die Sicherheit stand auf Hoch. Aber daran lags nicht.
Ich hatte das Makro ja aus nem Excel File exportiert und da stand in der .bas File folgendes:
Code:
Attribute VB_Name="hallo"
Sub hallo()
MsgBox "Hallo Welt!"
End Sub
hab die erste Zeile gelöscht:
Code:
Sub hallo()
MsgBox "Hallo Welt!"
End Sub
Und jetzt läufts
Jetzt ist der Task aber noch im Taskmanager drinne. Wie krieg ich den denn beendet? Hab das zweite Referenz schließen gelöscht, weil das n Fehler gab und den Task nicht beendet hat.
Thx
Wie ich auch grad gemerkt hab, wird das Makro nur "ausgeführt" und nicht "eingefügt". Da ist klar, dass die erste Zeile eigentlich raus muss
Give a man a fish and he will eat for a day. Teach a man to fish and he will eat for a lifetime.
Attribute VB_NAme = "myModule" sorgt beim importieren des Codes dafür, dass der Code im Modul mit dem Namen myModule eingefügt wird, bzw. dieses Modul bei Bedarf auch erstellt wird. Ohne diese Angabe landet dein Code immer in Modul1 ö.Ä..
Funktioniert hat dein Code mit der Modulangabe nicht, weil dein Modul den gleichen Namen hat, wie dein Sub. Das ist ein NoGo.
Änderst du eins von beiden, klappt es wieder.
Um den Task endgültig zu beenden, musst du Application.Quit in die Aufrufkette einfügen.
Ein Application.DisplayAlerts = False kann helfen, um die Frage zu unterdrücken, ob gespeichert werden soll (kommt bei mir, obwohl ich direkt vorher ThisWorkbook.Save ausführe).
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!