Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

Statusbar arbeitet nur anfangs, Excel friert ein

Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 09:42:28
Axel

Guten Morgen Excellenzen,
meine eingebaute Statusbar funktioniert prima. Anfangs.
Die Schwierigkeit, die ich habe:
ich lese aus einer Txt-Datei mit ca 4Mio Zeilen diese Zeilen nacheinander ein, bilde aus Teilwerten innerhalb der Zeilen Mittelwerte und übertrage schließlich ±3000 Zeilen×4Spalten an Werten in mein Excelsheet ein. Dies wiederhole ich innerhalb der gleichen Routine für ca. 20 Txt-Dateien.
Der Umfang der Arbeit die das Makro ausführt ist groß. Meine Statusbar funktioniert bei kurzen Test-Txt-Dateien gut. Auch bei den "großen Aufträgen" habe ich anfangs keine Probleme. Nach einigen Sekunden allerdings friert Excel dann visuell ein. Es sieht dann so aus, als ob Excel abgestürzt wäre, die "Sanduhr" (der blaue Ring) dreht, Excel geht auf "keine Rückmeldung"... arbeitet allerdings prima durch.
Weil der Arbeitsaufwand nun so groß ist, kann ich den PC während der Mittagspause einfach durchlaufen lassen, muss aber wissen, ober er nun noch arbeitet oder abgestürzt ist. Via Statusbar eben. Nur friert diese zusammen mit Excel ein...
Habt Ihr Vorschläge?
Gruß,
Axel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 11:13:12
Klaus
Hallo Axel,
ich habe mit dem visuellen Rückmeldungen per Statusbar nur gute Erfahrungen gemacht. Das verwende ich gerne innerhalb von langen Schleifen, ungefähr so:
j = 10000000
for i = 1 to j
application.stausbar = i & " von " & j
[Code]
next i

Ich nehme an, deine Lösung ist ähnlich.
Wenn ich dann große Calculate-Ereignisse starte, tut sich in der Statusbar nichts mehr und Excel schaltet auf "keine Rückmeldung". Wenn Excel eine Zeit X zum abarbeiten einer einzelnen Codezeile braucht, hast du keine Chance innerhalb dieser Zeit Rückmeldungen zu bekommen! Allerdings steigt (hoffentlich) die %-Angabe am unteren rechten Bildschirmrand weiterhin an, daran sieht man dass Excel noch arbeitet.
Ein Ansatz wäre, in deinem Code die Zeilen herauszufinden die sehr lange zum berechnen brauchen (Einzelschrittmodus) und jeweils vorher zu schreiben:
Application.StatusBar = "Es läuft Makro XXX, geschätzt für 10 Minuten, seit " & time
oder
Application.StatusBar = "Formel berechnen dauert ca 5 Minuten, läuft seit " & time
Die Zeit pro Makro / pro Programmzeile muss man halt einmal ermitteln (per Stoppuhr oder timer-Befehl) und dann fest in den Code schreiben. Ist natürlich auch nicht ganz scharf, denn auf einem P1 läuft so ein Makro schon mal länger als auf einem Core-i7 ... Aber als User bekommt man dann schon ein Gefühl, ob man bereits die STRG+ALT+ENTF Kralle ansetzen soll oder noch warten.
Bei sehr langem Code setze ich auch gerne eine Zeile MsgBox("Code fertig!") ans Programmende. Dann gehe ich ins Meeting, zu Tisch oder eben einen Kaffee holen (je nachdem wie lange der Code brauchen könnte). Wenn ich wiederkomme und die MsgBox sehe, ist alles gut. Wenn nicht, drücke ich reset.
Bessere Tips kann ich, ohne Kentniss deines Codes und deiner Datei, leider nicht geben. Die üblichen Beschleuniger Calculation = Manual und Screenupdating = False hast du ja sicherlich schon eingebaut.
Grüße,
Klaus M.vdT.

Anzeige
AW: Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 12:14:13
Luschi
Hallo Klaus & Axcel,
die Statusbar! in Excel/Access spinnt öfters mal. Gerade dann, wenn etwa
umfangreichere Aktionen pro Arbeitsschritt anfallen - bleibt das Ding
aus Gründen einfach stehen, ohne den tatsächlichen
Prozeß-Fortschritt zu stören!
Hier hilft nur eine eigene Userform, die in der Schleife als Objekt übergeben wird.
Gruß von Luschi
aus klein-Paris

AW: Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 15:34:36
Axel
Hey Ihr beiden!
Vielen Dank für Eure Bemühungen. Der Prozessfortschritt ist tatsächlich sehr groß, mein PC lüftet während der Ausführung auffallend. Ich habe es eben mal mit der Userform probiert, mache aber wohl noch etwas falsch. Ein kleiner Test-Code lautet (aber funktioniert leider nur in der Einzelschrittausführung?!):
Sub Macro1()
UserForm1.Show (0)
For i = 1 To 5
Application.Wait Now + TimeSerial(0, 0, 1) 'simuliert die Arbeitsschritte
UserForm1.Label1.Caption = "progress" & i 'simuliert meine Fortschrittsvariable
Next i
Unload UserForm1
End Sub
Könnt Ihr mir hier noch auf die Sprünge helfen?
Gruß,
Axel

Anzeige
AW: Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 15:40:38
Klaus
Hi,
ungetestet, aber ich meine mich zu erinnern daran lags:
Sub Macro1()
UserForm1.Show (0)
For i = 1 To 5
Application.Wait Now + TimeSerial(0, 0, 1) 'simuliert die Arbeitsschritte
UserForm1.Label1.Caption = "progress" & i 'simuliert meine Fortschrittsvariable
userform1.repaint
Next i
Unload UserForm1
End Sub

Grüße,
Klaus M.vdT.

AW: Statusbar arbeitet nur anfangs, Excel friert ein
21.03.2013 16:57:03
Axel
Hey Klaus,
ich dachte mir schon, dass es so einen Befehl geben muss...
Klappt! Danke!
Gruß,
Axel

AW: Statusbar arbeitet nur anfangs, Excel friert ein
22.03.2013 05:22:31
Luschi
Hallo Axel,
so sieht es mit einer Progreßbar-Fortschritsanzeige aus.
https://www.herber.de/bbs/user/84502.xlsm
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige