Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel ist langsam

Excel ist langsam
11.06.2004 20:48:13
Michael
Hallo,
zur Ausgabe von Angeboten aus einer Access-Datenbank verwende ich seit einiger Zeit Excel-Worksheets. Dabei muss ich sehr häufig die .Merge- und .Autofit-Methoden des Range-Objektes verwenden und lege darüberhinaus noch die .Styles-Eigenschaft fest. Dies hat leider zur Folge, dass der Export größerer Textmengen sehr lange dauert (5-7 Minuten für 8 Excel-DinA4-Seiten !!!).
Ich konnte in meinem Code gezielt nachmessen, dass diese Excel-Funktionen ca. 80% der gesamten Laufzeit benötigen, da ich sie auf Grund von verbundenen Zellen
(dabei musste ich auf eine hier gefundene AutoFit-Methode zurückgreifen, die bis auf die Performance wunderbar funktioniert, da Excel kein direktes AutoFit für die Höhe verbundener Zellen ermöglicht)
und ca. 12-15 verschiedener Range-Styles sehr häufig verwenden muss, und auch jede (nicht leere) Excel-Zelle einzeln beschreiben und formatieren muss.
Das Screenupdating habe ich bereits (mit gutem Ergebnis) abgeschaltet.
Gibt es vielleicht eine grundlegende Möglichkeit (API-Funktionen wie beim VB-Listview-Control oder irgendwelche Einstellungen von Excel, kopieren der (Access-)Texte über das Clipboard in ein Range-Objekt, DDE oder ähnliches, oder vielleicht was ganz anderes ...), die angegebenen Formatierungsfunktionen von Excel mit gleichem Ergebnis zu umgehen oder sie zu beschleunigen ???
Viele Grüße,
Michael, der derweil sich einen Kaffee holt, und auf den nächsten Export wartet ;-)) ...

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel ist langsam
11.06.2004 21:44:36
andre
Hallo Michael,
warum bleibst Du nicht bei Access ?
warum machst Du alles einzeln? Du kannst doch auch Bereiche formatieren...
hast Du mal 'n bissel code zum nachdenken und diskutieren?
AW: Excel ist langsam
15.06.2004 13:12:57
Michael
Hallo Andre,
zunächst mal vielen Dank für Deinen Hinweis.
ursprünglich hatte ich nur Access-Berichte für die Angebote.
Da es dort aber fast unmöglich ist, mit den verfügbaren Optionen in jedem Fall
die Seitenumbrüche befriedigend zu steuern und die Berichte auch nicht mehr
editierbar sind, empfanden das viele Benutzer als wenig erfrischend.
Also habe ich als zusätzliche Möglichkeit den Export nach Excel angeboten,
der zwar schön formatierte Angebote liefert, aber eben erst nach einiger Zeit ...
Für den Export aus und über Access habe ich eine Mischung aus Tabellen-basiertem Skript,
Excel-Blankovorlage mit benutzerdefinierten Styles, SQL-Statements und Views für die Daten und VBA-Code zur Steuerung verwendet, der aber vermutlich den Rahmen hier sprengen würde.
Der Zeitaufwand (in Sekunden) setzt sich für ein durchschnittliches Angebot (7-8 Seiten) beispielsweise wie folgt zusammen:
MergeAutofit (Excel-Funktionen)136,793 (Höhe textgefüllter verbundener Zellen richtig einstellen)
Styles setzen (Excel) 38,227
Werte exportieren (Excel) 33,047
Merging (Excel) 22,320
StandardAutofit (Excel) 21,973
Zeilenhöhe einstellen (Excel) 16,398
Aufzählungszeichen ("Bollen") 6,730 (Excel)
Collections (Skript) 2,648 (Access-VBA)
Sonstiges (Recordsets, etc.) 1,770 (Access-VBA)
Excel Öffnen 0,461 (Access-VBA)
Kopf- und Fusszeilen 0,418 (Access-VBA)
SQL-Strings holen 0,223 (Access-VBA)
Rohwerte und Formate holen 0,164 (Access-VBA)
Steuerung bedingte Ausgabe 0,129 (Access-VBA)
Restarbeiten 0,078 (Access-VBA)
Werte konvertieren 0,043 (Access-VBA)
Gesamt 281,422
Grüße
Micha ...
Anzeige
AW: Excel ist langsam
15.06.2004 21:37:58
andre
Hallo Micha,
wie schon gesagt, ohne den code wird es kaum was gescheites. Da kann ich nur empfehlen, den veränderlichen Teil so gering wie möglich zu halten, lieber in einem Mergebereich mal eine Zeile frei lassen und eine Seite mehr verbrauchen als den ganzen Zeitverlust hinnehmen ... Oder Du nutzt die Kraft der zwei Herzen ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige