Registriert seit: 21.10.2018
Version(en): 2013
Hallo liebes Forum,
mir ist heute etwas aufgefallen und ich wollte wissen, ob das Problem jemand kennt.
Ich bin von Excel 2010 zu Excel 2016 gewechselt und einige Makros laufen jetzt sehr viel langsamer als vorher. Als Grund konnte ich die Funktion Application.StatusBar ausfindig machen, mit der ich mir immer anzeigen lasse, wie weit das Makro gerade ist.
Für das folgende simple Makro zum Beispiel braucht Excel 2016 hier 12 Sekunden, während Excel 2010 nur 2 Sekunden benötigt.
Sub test()
t = Now
For i = 1 To 5000
Application.StatusBar = i
l = i
Next i
Cells(1, 1) = Format(Now - t, "hh:mm:ss:ms")
End Sub
Wie kann das sein? Mir ist schon aufgefallen, dass die Reaktionen von Excel 2016 irgendwie "smooth" geworden sind, zum Beispiel wenn man einen Zellenbereich markiert. Kann das daran liegen? Und kann man das irgendwie ausstellen?
Ich möchte nicht unbedingt auf Application.StatusBar verzichten, auch wenn ich weiß, dass es noch andere Möglichkeiten gibt, um den Fortschritt des Makros anzuzeigen.
Vielen Dank für Eure Antwort.
Kieks
Registriert seit: 15.08.2017
Version(en): 2016
Hallo Kieks
Hast auch noch den PC gewechselt?
Auf Windows 7, i7, 3,6 GHz, Office 2010 = 1,121 Sekunden
Auf Windows 10, i7, 2.5 GHz, Office 2016 = 2,123 Sekunden
Gruss Guschti
Registriert seit: 21.10.2018
Version(en): 2013
Hallo Guschti,
danke für deine Antwort!
Du hast recht, ich habe auch den PC gewechselt.
Vorher:
Windows 7, i7, 2,6GHz, 2 Kerne, 4 logische Prozessoren
Jetzt:
Windows 10, i5, 1,7GHz, 4 Kerne, 8 logische Prozessoren
Ich hätte nicht gedacht, dass sich das so stark auf Excel auswirkt. Aber dann muss es wohl daran liegen.
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
wozu eine Statusbar? Man kann seine Programme auch so schreiben, dass sie so schnell sind, dass man keine solchen Spielereien benötigt.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 21.10.2018
Version(en): 2013
Es gibt bestimmt einen Haufen von Gründen, warum ich die Anzeige des Status in der StatusBar jetzt beibehalten möchte. Und selbst wenn es nur eine Spielerei ist, sollte Excel 2016 das nicht verlangsamen.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
14.10.2019, 16:55
(Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2019, 16:55 von RPP63.)
Betrifft aber nicht die eigentliche Frage, Klaus-Dieter!
Zitat:Mir ist schon aufgefallen, dass die Reaktionen von Excel 2016 irgendwie "smooth" geworden sind, zum Beispiel wenn man einen Zellenbereich markiert.
Derjenige, der sich diesen Schwachsinn hat einfallen lassen, bekommt sicherlich Stundenlohn und wird nicht nach Produktivität bezahlt!
Abhilfe:
Datei, Optionen, "erleichterte Bedienung"
Feedbackoptionen, Feedback mit Animationen bereitstellen deaktivieren!
Ob es allerdings hilft, lasse ich mal dahingestellt und schließe mich der Meinung von Klaus-Dieter denn doch an.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 21.10.2018
Version(en): 2013
Danke für den Hinweis, Ralf! Das Problem ist dadurch nicht gelöst.
Ich vermute ganz stark, dass es an diesem Problem liegt:
https://answers.microsoft.com/en-us/msof...5b7?page=1
Davon bin ich nämlich auch betroffen.
Ich muss mich wohl erstmal damit abfinden.
Registriert seit: 27.12.2018
Version(en): 2003,2010
Hallo Kieks
für mich war die Ausgabe in der Statusleiste schon immer ein Zeitfresser ohne Ende, auch schon bei Excel2010. Irgendwann bin ich drauf gekommen, dass man ja nicht jede Zahl ausgeben muß, wenn man nur den Fortschritt verfolgen will. Bezogen auf deinen Test bedeutet dies
If (i Mod 10 = 0) Then Application.StatusBar = i
verkürzt die Laufzeit bei mir auf ein Zehntel. Je nach dem wie groß die Schleife ist, kann man auch mod 100 oder größer sagen. Hilft das ?
vg, MM
Registriert seit: 15.08.2017
Version(en): 2016
Hallo MM
Das entspricht
Gruss Guschti
Registriert seit: 27.12.2018
Version(en): 2003,2010
Hallo Guschti,
ja klar, bezogen auf den einfachen Testfall ist das richtig. Aber, normalerweise passiert in der Schleife ein bisschen mehr als nur die triviale Ausgabe einer Nummer in der Statuszeile und man kann den Grenzwert des Schleifenzählers nicht ändern, nur weil die Ausgabe der Nummer lahm ist.
vg, MM
|