Autor Beitrag
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 15.06.10 16:15 
Mh.., fällt mir das ein.
ausblenden Quelltext
1:
Exel.EnableEvents := False					

ob richtig? :gruebel:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 16.06.10 11:08 
wenn ich also habe:

ausblenden 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

ausblenden Delphi-Quelltext
1:
Appl.EnableEvents := False					


rein gar nichts.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 16.06.10 14:53 
An welcher Stelle hast Du es den eingefügt!
richtig müsste es hier sein:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: 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 user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 16.06.10 15:51 
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
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 :gruebel: muss ich passen.
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
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??" :wink:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chemiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
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.
BeitragVerfasst: Do 17.06.10 01:04 
Hallo delphijanka,

ausblenden Delphi-Quelltext
1:
Appl.WorkBooks.Open('Adresse der Excel-Datei');					


Hier sollte der komplette Path angegeben werden.
z.B. :

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 17.06.10 13:50 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Do 17.06.10 16:29 
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
Hej.
Wie kann ich solche Excel-Meldungen komplett "deaktivieren" (besser: ignorieren), sodass sie nicht beim Öffnen angezeigt werden?


Versuchs mal mit
ausblenden Delphi-Quelltext
1:
Appl.DisplayAlerts:= false;					

Für diesen Beitrag haben gedankt: Teufelskreis
Teufelskreis
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 04.08.10 10:08 
hmmm... also bei mir klappt es... :roll: