Prüfen ob dedizierte Excel Tabelle (neben gleichzeitig anderen geöffneten Excel Dateien) geöffnet ist, wenn ja save and close

  • Hallo und einen guten Abend zusammen,

    wie beschrieben im Subjekt, habe ich das folgende Problem:

    Problembeschriebung
    Im Zuge einer automatisierten Sicherung, muss geprüft werden, ob einen Excel Tabelle (hh.xlsx in einem bestimmten Verzeichnis) lokal geöffnet ist.
    Wenn ja -
    dann soll die Datei mit Save & Close geschlossen werden, damit die Sicherung erfolgreich durchgeführt werden kann
    (ansonsten ist die Datei im Zugriff (open) und kann nicht gesichert werden)
    Wenn nein -
    dann kann 'direkt' gesichert werden :)

    Mein Ansatz

    [autoit]


    ....
    #include <Excel.au3>; ? brauche ich dieses INCLUDE ?
    DIM $cdeXLSX1
    ....
    $cdeXLSX1 = IniRead(@ScriptDir & "\Backup.cfg","Excel", "WS1", "Not Found"); Config Datei - dort ist die Datei bzw. der Dateiname hinterlegt
    ....
    If WinExists("Microsoft Excel - " & $cdeXLSX1) Then
    Local $cdeXLSX1
    Local $oExcel = ObjGet("","Excel.Application")
    $oExcel.Workbooks($cdeXLSX1).Activate
    $oExcel.Workbooks($cdeXLSX1).Save
    $oExcel.Workbooks($cdeXLSX1).Close
    Sleep(2000)
    EndIf
    ...

    [/autoit]

    Leider funktioniert das so nicht ... und ich verstehe nicht warum ???

    Frage:
    Was stimmt in der Logik nicht ?
    Gibt es einen anderen sinnvollen Ansatz ?


    Ich hoffe, dass ich mich zu sehr 'blamiere'

    DANKE
    Gruss Chris ;)

  • Hallo BugFix,

    Danke für den Tip ...
    Werde dies testen und berichten.
    Allerdings ist mir letztlich nicht so klar, was das eigentliche Problem dieser Aktion ist.
    Denn wenn ich im Windows Taskmanager unter den Appl. schaue, ist dort die Datei zu sehen (wenn diese geöffnet vorliegt).
    Somit weiss Windows doch davon ....

    Aber erstmal egal - ich werde das Testen!

    mfg
    Chris