Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Reagieren auf Schliessen von Excel (OLE) (https://www.delphipraxis.net/169332-reagieren-auf-schliessen-von-excel-ole.html)

adeptus 12. Jul 2012 16:32

Reagieren auf Schliessen von Excel (OLE)
 
Hi,

meine Anwendung öffnet über OLE einen Excel COM-Server und lädt dort eine bestimmte XLS-Datei.

In Excel kann der User nun die Daten ändern und ggf. auch speichern.

Nun möchte ich einige der Daten die der User eingegeben hat, bzw. das Ergebnis von Formeln, aus bestimmten Zellen heraus lesen.

Technisch ist das ja alles kein Problem, nur suche ich den richtigen Zeitpunkt... Wie kann ich mitbekommen, dass der User gespeichert und Excel verlassen hat, so dass ich dann die Werte auslesen kann?

Ein Idee wäre in einer Schleife zu Testen ob ich die XLS-Datei mit Schreibrechten öffnen kann, aber das scheint mir sehr sperrig...

Jemand eine sauberere Lösung/Idee?

Vielen Dank für jede Antwort!

RWarnecke 12. Jul 2012 16:59

AW: Reagieren auf Schliessen von Excel (OLE)
 
Eine Option wäre vielleicht das Ergeignis Workbook_BeforeClose im Excel selber. Hier könntest Du zum Beispiel eine Message an Dein Programm senden, dass die Datei geschlossen wird.

adeptus 13. Jul 2012 09:10

AW: Reagieren auf Schliessen von Excel (OLE)
 
Zitat:

Zitat von RWarnecke (Beitrag 1174516)
Eine Option wäre vielleicht das Ergeignis Workbook_BeforeClose im Excel selber. Hier könntest Du zum Beispiel eine Message an Dein Programm senden, dass die Datei geschlossen wird.

Wie würde ich denn dieses Event implementieren? in VBA? Oder irgendwie als Callback?

RWarnecke 13. Jul 2012 09:47

AW: Reagieren auf Schliessen von Excel (OLE)
 
Das Ereignis musst Du in die Excel Datei implementieren im VBA. Das Ereignis Bei Google suchenWorkbook_BeforeClose wird beim Schliessen der Arbeitsmappe oder beim Schliessen der Excelanwendung ausgeführt, wenn die Arbeitsmappe noch geöffnet wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz