Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
120to124
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
120to124
120to124
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Geschwindigkeit unter VBA?

Geschwindigkeit unter VBA?
24.05.2002 08:17:51
Stefan
Hi, ich warte gerade mal wieder auf eine Programmausführung und das ganze Ding ist UNERTRÄGLICH langsam. Was kann man tun?
Also - zunächst das Problem. Ich führe mit einem relativ grossen Datensatz umfangreiche Berechnungen durch, für welche ich auf Excel-Funktinoen und Auswahlmechanismen zurückgreife (z.B. Standardabweichungen, Median, realtive Ränge usw. berechnen und Selektion bestimmter Datensätze nach Kriterien über die Auto-Filter Methode). Das Ergebnis lasse ich jeweils in einer neuen Spalte ausgeben, auf die ich dann für die folgenden Berechnungen zugreife. Und das alles geht wahnsinnig langsam.
Welche Möglichkeiten gibt es, hier die Performance zu verbessern, oder ist das einfach so.
Besonders lang scheint er immer für die Selektion via Auto-Filter und Berechnung von Rängen u.a. (z.B. auch Summewenn usw.) zu brauchen. Bringt es was, alles nur intern (z.B. in einem array) berechnen zu lassen und das erst ganz zum Schluss wieder in eine Excel-Tabelle schreiben zu lassen? Diese Mglchkt. wäre mir allerdings nicht so angenehm, weil ich da nicht wirklich sehen kann, was mein Programm mit den Sachen macht (bin nicht so sicher im Programmieren).

Und noch eine letzte Frage. Wie kann ich erkennen, ob VBA abgestürzt ist, oder noch arbeitet (ausser einem Zähler in der Application-Statusbar?). Oder passiert es selten, dass VBA abschmiert?

Viele Grüsse und einen schönene Morgen wünscht,

Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Geschwindigkeit unter VBA?
24.05.2002 08:21:30
Hajo
Hallo Stefan

eine Geschwindigkeitssteigerung bringt es schon, wenn Du auf Befehle wie select und ähnliches verzichtets.

Zu Fortschrittsanzeige schaue mal hier
369. API-Fortschrittsbalken
Hier der direkte Link zu Michael Schwimmer, resp. dem API-Fortschrittsbalken:
http://schwimmer.bei.t-online.de/sonderfunktionen.htm#Fortschrittsanzeige
Von Thomas Ramel


Gruß Hajo

Re: Geschwindigkeit unter VBA?
24.05.2002 08:47:47
Michael Scheffler
Hallo,

also VBA ist nun einmal eine Interpretersprache, das dauert immer langsam. Dann sind interne Arrays, denen Du feste Typen und Grenzen gibst (falls Du die kennst), immer schneller.

Und außerdem solltest Du auf die Aktaliseirung des Bildschirms verzichten, wenn Du schon auf die Tabellen zugreifen willst. Das daueret erfahrungsgemäß am längsten.

Gruß

Micha

Anzeige
Re: Geschwindigkeit unter VBA?
24.05.2002 08:50:03
Timo
Hallo Stefan,

helfen würde vermutlich, wenn du die Bildschirmaktualisierung für die Laufzeit des Makros deaktivierst. Dann siehst du allerdings auch nicht, was dein Makro grad macht...

Dazu musst du nur 2 Zeilen Quellcode ergänzen:
Application.Screenupdating = False 'Direkt nach der Variablendeklaration
Application.Screenupdating = True 'Am Ende des Makros

Hoffe, dir geholfen zu haben

Timo

Re: Geschwindigkeit unter VBA?
24.05.2002 09:03:19
rainer
Hallo! Bei mir hat der Einbau von application.xlcalculation = false am Anfang des Makros und application.xlcalculation = true am Ende Wunder bewirkt. Das hängt jedoch davon ab, ob du per Makro Werte in Zellen schreibst und Formeln in Zellen drin hast. Excel würde in diesem Fall immer bei Zelländerungen zuerst rechnen bevor es weitergeht. Mit den zwei Zeilen wird nur einmal am Ende des Makros gerechnet
Gruß
Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige