Programm (Excel) beenden mit Aufgabenplaner

  • Hallo zusammen,

    ich habe ein AutoIt-Script geschrieben, welches täglich einige Änderungen an diversen Excel-Tabellen durchführt. Hierfür werden drei verschiedene Excel-Tabellen (diese liegen auf einem Sharepoint-Laufwerk) mit _Excel_Open() geöffnet und am Ende mit _Excel_Close($oExcel, False, True) geschlossen. Bzw. sie sollten geschlossen werden.

    Wenn ich das Script "manuell" entweder über den Script-Editor oder auch als kompilierte .exe starte/ausführe klappt alles. Nun habe ich einen Task im Aufgabenplaner erstellt, welcher die .exe-Datei jeden morgen ausführt. Das macht er auch. Alles funktioniert. Die Excel-Dateien werden geändert, erstellt und auch gespeichert. Aber Excel wird nicht beendet.

    Somit habe ich jeden Morgen auf dem entsprechenden Rechner drei geöffnete Excel-Tabellen...

    Wenn es Sinn macht, bzw. erforderlich ist kann ich natürlich auch gerne das Script posten.

    Danke für eure Hilfe

    Michael

  • Wenn es Sinn macht, bzw. erforderlich ist kann ich natürlich auch gerne das Script posten.

    Das wäre seeehr hilfreich :)

  • Alles klar. Hier der Code.

    Ja... ich weiß... mit dem kommentieren habe ich es nicht so und ziemlich sicher kann man das ganze auch (deutlich?) effizienter schreiben ;) Aber es tut was es soll (bis auf das o.g. Problem)


  • Ich würde die Fehlerbehandlung stark ausbauen. D.h. nach jedem _Excel_* Funktionsaufruf auf Erfolg/Misserfolg prüfen. Die Meldungen kannst Du in meinem Beispiel beliebig auf die Konsole, als MsgBox oder in eine Datei ausgeben (was bei Ausführung über die Aufgabenplaung sinnvoll ist):

  • Ich kann aktuell nicht den ganzen Code überfliegen aber du öffnest das Excel "Silent" also im Hintergrund, mach es doch mal sichtbar (_Excel_Open(TRUE, TRUE, TRUE, FALSE)) ggf. siehst du den Fehler dann (eine Fehlermeldung).

    Eine Schnellschussidee: Speicherst du die Dateien vorm beenden (wirklich)? Wenn nicht, musst du das explizit machen, denn sonst kommt eine Fehlermeldung "Soll das Dokument vorm Schließen gespeichert werden?"

    4 Mal editiert, zuletzt von Moombas (28. April 2021 um 15:54)

  • Es kommt keine Fehlermeldung. Auch kein Errorcode.

    Was mich "wahnsinnig" macht ist, dass alles funktioniert wenn ich das Script (und auch die exe) manuell starten lasse. Sobald die Exe allerdings über den Aufgabenplaner gestartet wird, werden die Excel-Dateien nicht geschlossen. Auch _Excel_BookClose ändert nichts daran.

    Die Vorletzte Codezeile speichert die, durch das Script, neu erstellte Excel-Datei das erste Mal ab. Das funktioniert auch, da die Datei jedesmal auf dem Sharepoint liegt. Aber danach sollten die offenen Excel-Dateien (es sind drei Stück) geschlossen werden. Das passiert nicht. Weder durch _Excel_Close noch wenn ich mit _Excel_BookClose die drei Dateien einzeln schließen möchte.

  • Hört sich fast so an als wenn der Aufgabenplaner die Excel Prozess noch offen hält.

    Dann geht wohl nur der unschöne weg den BugFix vorgeschlagen hat.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Mit welchem Benutzer startest Du im Aufgabenplaner Dein Skript? System, Dein Benutzer ...?