Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroausführung immer lansgsamer

Forumthread: Makroausführung immer lansgsamer

Makroausführung immer lansgsamer
16.02.2005 10:59:13
hbis
Hallo zusammen,
ich sitze gerade an einem Phänomen, für das ich bisher nirgendwo Hinweise gefunden habe:
Ich habe eine Makro gebaut, das nacheinender aus insgesamt 26 verschiedenen Tabellen Daten ausliest, umordnet und -formatiert, zusammenfasst und in neuen (Text-)Dateien ausgibt. Das Makro wird bei Aufruf der zugehörigen EXCEL-Datei automatisch gestartet, die Tabelle schließt sich nach dem kompletten Durchlauf selbst.
Dieses Makro an sich läuft störungsfrei, der Ablauf dauert z.Zt. etwa 3 - 5 Minuten.
Mein Problem: Andere Benutzer sollen das Makro aufrufen können, sie sollten aber nicht in den Ablauf eingreifen oder das Makro abbrechen können. Ich habe daher verschiedene Ansätze ausprobiert (u.a. Application.Visible = False, Application.UserControl = False), die den Ablauf "störungssicherer" machen sollen.
Dabei stehe ich jedesmal vor dem Problem, dass das Makro langsamer wird und EXCEL quasi "stirbt", sobald die Anwendung den Fokus verliert. Ist das EXCEL-Fenster im Vordergund und maximiert, läuft mein Makro, ist es z.B. minimiert und verliert den Fokus durch Anklicken eines anderen Fensters, verlangsamt sich das Makro bis zum Stillstand (btw: bei 97% CPU-"Last" durch "Leerlaufprozess"..)
Der Einbau mehrerer "AppActivate "Microsoft Excel"" ins Makro vermindert die Abbruchrate zwar, aber das kann doch eigentlich nicht die Lösung sein?
Kennt jemand dieses (übrigens Rechner-unabhängige) Phänomen? Gibt es Tipps und Tricks zu diesem Thema?
Wär' nett, wenn ich irgendwie einen Ansatz finden würde.
Vielen Dank vorab!
Hans
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makroausführung immer lansgsamer
u_
Hallo,
das manuelle Abbrechen kannst du einfach mit einem
Application.enablecancelkey=False
am Anfang unterbinden. Am Ende wieder auf True setzen.
Gruß
AW: Makroausführung immer lansgsamer
16.02.2005 11:05:36
Matthias
Hallo Hans,
was helfen könnte:
Application.ScreenUpdating = False
und vor allem:
jegliches Activate und Select im Code vermeiden! Prüfe den Code mal dahingehend.
siehe auch: https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Gruß Matthias
Anzeige
AW: Makroausführung immer lansgsamer
16.02.2005 11:21:27
hbis
mmmh...
Interessanter Hinweis. Es wimmelt tatsächlich von "Select"s im Code, ich werde ihn mal überarbeiten. Andererseits: wie sollte das das Problem (läuft im Vordergund/stirbt im Hintergrund) erklären?
Mal schauen, ich werd mich wieder melden.
Danke derweil!
Hans
AW: Makroausführung immer lansgsamer
16.02.2005 11:34:22
Matthias
Hallo Hans,
schon ein Screenupdating = False bringt ca. 300% mehr Geschwindigkeit (bei vielen Selects und Activates), ein Verzicht auf diese Befehle noch mehr.
So kann es sein, dass dein Code statt in 3-5 Minuten in 30 Sekunden oder weniger abgearbeitet ist.
Also ist das erstmal der oberste Priorität ;-)
Gruß Matthias
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige