Autor |
Beitrag |
delphijanka
      
Beiträge: 151
WinXP
D 2009 Arc., Java, C
|
Verfasst: Di 15.06.10 16:01
Hej.
Wenn ich mit Delphi eine bestimmte Excel-Datei öffne, um Daten zu lesen, erscheint eine Excel-Meldung, die beim Öffnen dieser Datei typischerweise immer erscheint (z.b. Frage nach Aktualisierung).
Somit wird die Datei nicht gelesen, solange ich den Button der erschienenen Meldung nicht betätige.
Wie kann ich solche Excel-Meldungen komplett "deaktivieren" (besser: ignorieren), sodass sie nicht beim Öffnen angezeigt werden?
Oder anders gefragt: wie kann ich automatisch den Button betätigen?
Danke.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Di 15.06.10 16:15
Mh.., fällt mir das ein.
Quelltext 1:
| Exel.EnableEvents := False |
ob richtig?
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
delphijanka 
      
Beiträge: 151
WinXP
D 2009 Arc., Java, C
|
Verfasst: Mi 16.06.10 11:08
wenn ich also habe:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| ... var Appl: OLEVariant; begin Appl := CreateOleObject('Excel.Application'); Appl.Visible := false; Appl.WorkBooks.Open('Adresse der Excel-Datei'); ... |
so bringt
Delphi-Quelltext 1:
| Appl.EnableEvents := False |
rein gar nichts.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mi 16.06.10 14:53
An welcher Stelle hast Du es den eingefügt!
richtig müsste es hier sein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| ... var Appl: OLEVariant; begin Appl := CreateOleObject('Excel.Application'); Appl.EnableEvents := False: ...... ...... |
kann natürlich auch sein das dies nicht unter ein "Event" fällt.
ansonsten mal an der gleichen Stelle wie gezeigt, Appl.DisplayAlerts := False, setzen!
!! am Ende der Procedure natürlich auch wieder auf True setzen!!
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
delphijanka 
      
Beiträge: 151
WinXP
D 2009 Arc., Java, C
|
Verfasst: Mi 16.06.10 15:16
Danke Alf.
1) ALso ich habe zu Beginn beides auf false gesetzt. Einige Meldung werden nicht angezeigt, andere Meldungen erscheinen immer noch. Vlcht gibs bei Excel noch irgendeine Funktion zum Deaktivieren anderer Meldungen..
2) Warum eigentlich beide wieder auf true setzen? Die Datei wird nach dem Lesen eh wieder geschlossen.
Moderiert von Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mi 16.06.10 15:51
delphijanka hat folgendes geschrieben : | Vlcht gibs bei Excel noch irgendeine Funktion zum
Deaktivieren anderer Meldungen.. |
glaube für operationen zwischen den Mappen/Tabellen (copy/move Zellenberechnung usw.) gibt es noch extra Meldungen die man unterdrücken kann, aber welche....? Sorry  muss ich passen.
delphijanka hat folgendes geschrieben : | 2) Warum eigentlich beide wieder auf true setzen? Die Datei wird nach dem Lesen eh wieder geschlossen. |
Genau deswegen, sollte vor dem weiter arbeiten alles wieder auf True sein. Man weiss ja nie was alles noch passiert!! Beim nächstenmal kommt dann die Frage "ich erhalte keine Meldungen von Exel, Warum??"
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Do 17.06.10 01:04
Hallo delphijanka,
Delphi-Quelltext 1:
| Appl.WorkBooks.Open('Adresse der Excel-Datei'); |
Hier sollte der komplette Path angegeben werden.
z.B. :
Delphi-Quelltext 1:
| Appl.WorkBooks.Open('c:\Users\User\Documents\Adresse der Excel-Datei'); |
Oder wo auch immer die Excel-Datei ist.
Bis bald Chemiker
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Do 17.06.10 13:50
ALF hat folgendes geschrieben : | glaube für operationen zwischen den Mappen/Tabellen (copy/move Zellenberechnung usw.) gibt es noch extra Meldungen die man unterdrücken kann,... |
Fällt mir gerade ein, bei solchen Aufrufen kann man, wenn ich es noch richtig weiss, einen Parameter mit übergeben (True/False).
Der verhindert sogenannte Sicherheitsabfragen wie "wollen sie die Daten ändern" oder so ähnlich.
So das die Veränderung direkt, ohne Nachfrage, durchgeführt wird!
Diese Meldungen gelten aber nur für die Operationen und können nicht dauerhaft deaktiviert werden!
Leider alles so lange her
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Do 17.06.10 16:29
Für diesen Beitrag haben gedankt: Teufelskreis
|
|
Teufelskreis
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 04.08.10 10:08
hmmm... also bei mir klappt es... 
|
|