Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge

Excel 2007 - Beschleunigung der Dateneingabe

Anker57 / 4 Antworten / Baumansicht Nickles

Hallo allerseits, kleine Frage zu EXCEL/VBA:

Ausgangssituation: In vorbereitete und geöffnete Excel-Tabelle wird über externes Programm (per OLE) ein Tabellenbereich gefüllt. Daten-Entgegennahme von Excel ist entschieden zu langsam.
Bereits versucht:
excel.ScreenUpdating := False;
excel.EnableEvents := False;
excel.Calculation := xlCalculationManual;
ohne Erfolg.
Aber: Beschleunigung auf das ca. 10fache erfolgt bei gleichzeitigem Festhalten des Scrollbalkens (per linker Maustaste) innerhalb der Excel-Tabelle während der Datenübertragung.
Frage: welcher Mechanismus wird hier abgeschaltet und wie kann man das per VBA lösen?

bei Antwort benachrichtigen
peterson Anker57 „Excel 2007 - Beschleunigung der Dateneingabe“
Optionen

Wird während der Datenübernahme in der Tabelle was dargestellt?
Ich meine damit, daß zB. sehr viele bedingte Formatierungen arbeiten.

Das macht sowas ziemlich langsam.
Das kann man beschleunigen, indem man die Seite ausschaltet und nach der Übertragung wieder einschaltet.

bei Antwort benachrichtigen
Anker57 peterson „Wird während der Datenübernahme in der Tabelle was dargestellt? Ich meine...“
Optionen

Danke, aber genau das sollte durch die genutzten Funktionen (ScreenUpdating + Calculation) eigentlich abgeschaltet sein. (Oder funktioniert das nicht?)
Bedingte Formatierungen werden nicht genutzt.

bei Antwort benachrichtigen
peterson Anker57 „Danke, aber genau das sollte durch die genutzten Funktionen ScreenUpdating...“
Optionen

Müßte, aber ich denke, die Sysntax ist falsch.

Bei Excel 2000 wäre das

excel.ScreenUpdating = False;

Also ohne Doppelpunkt.
Ebenso die anderen.

bei Antwort benachrichtigen
Anker57 peterson „Müßte, aber ich denke, die Sysntax ist falsch. Bei Excel 2000 wäre das...“
Optionen

Die Syntax resultiert aus Delphi, dort muss der Doppelpunkt sein.
Trotzdem Danke.

Habe zwischenzeitlich das Problem anders gelöst:
die einzugebenden Daten (ca. 30.000 Einzelwerte) werden in der Zwischenablage bereitgestellt und dann mit einem Paste eingefügt.
Die Rechenzeit reduzierte sich dadurch von knapp 3 Minuten auf ca. 2 Sekunden.

Allerdings habe ich noch immer keine Erklärung dafür, warum das Festhalten des Scrollbalkens eine Beschleunigung bewirkte - aber das nur noch am Rande, das eigentliche Problem ist ja gelöst.

Danke nochmals.

bei Antwort benachrichtigen