Guten Tag zusammen (und allen einen guten Start ins NEUE JAHR 2015),
ich habe da (mal wieder ) ein Problem, mit dem ich mich schon etwas länger herumschlage und leider zu keiner Lösung gefunden habe. Daher hier meine Frage an das Forum.
Ich muss im Rahmen einer Datenübertragung, prüfen ob ein bestimmtes Excel File (Dateiname + -pfad sind definiert) zum Übertragungszeitpunkt offen ist.
Wenn ja, dann soll das File mit Save and Close gespeichert und geschlossen werden.
Alle weiteren möglichen offenen Excel Files (in der Regel 1 oder 2 weitere Dateien) müssen weiter geöffnet bleiben (da laufen kontinuierlich Online-Daten auf).
Mittels des u.a. Script Snips verusche ich das Problem in den Griff zu bekommen. Leider klappt das nicht immer.
Soll heissen, manchmal funktioniert alles wie gewünscht - manchmal bleibt das File weiter geöffnet und wird nicht mit Save&Close beendet.
Anmerkung - Es spielt (zumindest in meinen Tests) keine Rolle ob das File im Fokus ist (also auf dem Monitor im Vordergrund mit Fokus im File) oder nicht.
Ich kapiere es einfach nicht - weiss jemand Rat
[autoit]
;~ Check open Excel File - because open file could not be backuped... (added 21.12.2014)
cdeXLSX1 = 'd:\Laptop\Daten\work\ABCDEF.xlsx'
_CheckAndSave($cdeXLSX1)
Func _CheckAndSave($cdeXLSX1) ; Check if any Excel Instance open
$oExcel = ObjGet('', 'Excel.Application')
If IsObj($oExcel) Then ; check/list open Workbooks for ABCDEF.xlsx, if open save & close
For $i = 1 To $oExcel.Workbooks.Count
If $oExcel.Workbooks($i).FullName = $cdeXLSX1 Then
$oExcel.Workbooks($i).Save
$oExcel.Workbooks($i).Close
ExitLoop
EndIf
Next
EndIf EndFunc ;==>_CheckAndSave
Danke schon mal im voraus
mfg
ugt100