MsgBox verlangsamt Excelprogramm, statt 3 Sekunden nun fast 80 Sekunden

M--G

Lieutenant
Registriert
Dez. 2006
Beiträge
762
Hallo zusammen =)
ich bin gerade etwas am verzweifeln.
Neuer Rechner für mein neues großes Programm.
Statt Intel NUC nun einen i5-11500.

Ohne jegliche Eingabefelder rennt mein Programm nun von A-Z in 3-3,5 Sekunden durch, im Vergleich zu meinem 7700 k mit etwa 4.5-5 Sekunden und ca. 15 Sekunden mit dem NUC.

Nun gibt es aber das Problem, dass die Leistung auf 30-80 Sekunden (nur auf dem neuen Rechner!!!) zusammenbricht im normalen Zustand mit Eingabefeldern.
Nach vielem Testen konnte ich feststellen, dass die 3 Sekunden erreicht werden, sobald keine einzige MsgBox oder Inputbox aufploppt.

Ich habe ältere Versionen probiert, gleiches Phänomen....
Vielen herzlichen Dank, konnte es nach Stunden immerhin auf die MsgBoxen reduzieren, aber bin der Lösung noch nicht näher....

Bsp für die MsgBox:
(Gedankenblitz: liegt es daran dass Msg nicht explizit definiert wurde/ an den Einstellungen im frischen Excel?!?!)

Msg = MsgBox("Wollen sie auch die CSV-Daten laden?", vbYesNo)
' If Msg = vbYes Then
' Call CSVladen_Click
' End If

Office 2016
Build 13929.20386 am neuen PC mit Problemen
Build 13929.20372 bei mir am 7700k

p.s. ich hatte Anfangs noch gedacht, dass am neuen Rechner dieser Block sich durch die MsgBox deaktiviert, aber selbst wenn ich ihn komplett lösche, braucht es ohne MsgBox nur 10 Sekunden.

Private Sub SpeedOn()
'Speedblock on
With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
ActiveSheet.DisplayPageBreaks = False
End Sub
 
Leider nur Office 2016 vorhanden....
:(
 
Sobald ich eine MsgBox drin habe, dauert der ganze Code 30-80 statt 3 Sekunden.
Ich werde mal testen, wieviel es ausmacht, wenn die MsgBox nicht am Anfang, sondern an unterschiedlichen Stellen ist.
ggf. kann ich das Problem weiter einschränken.

Eventuell auf Datei öffnen.
Gibt es vielleicht libraries, die bei einem neuen PC trotz fast gleichem Office nicht mehr dabei sind?
 
Und deine Msgbox führt auch nichts aus, selbst wenn du auf Ja drückst? Ist halt schwer zu sagen...Excel kann durch so viele Sachen ausgebremst werden. Nur wegen der Msgbox kommt mir etwas komisch vor, hab ich so noch nie erlebt.

Deine Datei kannst du nicht zufällig teilen?
 
selbst eine MsgBox "hi" löst das Phänomen aus -_-
Ja ich finde es auch seltsam.

Der Code ist fast 60 Seiten lang und involviert das Öffnen einer Datenbank und anderer Dateien.
Selbst kürzere Teilfragmente weisen das Problem auf am neuen Rechner.

Teilen der Datein höchstens per E-Mail.
 
Ungewöhnlich, ich nutze in fast allen meinen scripts irgendwo ne Msgbox und habe noch nie eine derartige Verlangsamung beobachtet. Sicher, dass dafür nicht irgendeine andere Unterroutine verantwortlich ist?

Alternativ kannst du ja testweise einen Filedialog als Input zweckentfremden. Bspw. sowas

Set dlgAuswahl = Application.FileDialog(msoFileDialogFolderPicker)
dlgAuswahl.InitialFileName = savepfad
ok = dlgAuswahl.Show
If ok Then quellordner = dlgAuswahl.SelectedItems(1)

Ist zwar aus einem meine Word-Scripte, aber sollte auch in excel funzen.
 
M--G schrieb:
Teilen der Datein höchstens per E-Mail.
Ich wäre ja eigentlich schon gespannt :-) Habe zwar nur wenig Zeit für sowas momentan, aber ich schicke dir ne PM mit meiner E-Mail, falls du den Wunsch verspürst, dass noch jemand drüber schaut.
 
  • Gefällt mir
Reaktionen: M--G
Hmmm ich hatte den Eindruck wenn ich klicke, dass es dann schneller geht.
klicke ich einen Ordner oder anderes Fenster (noch nichtmal Vollbild) in den Vordergrund, dann ist er nach 4-5 Sekunden durch... wtf?!

Zeitangaben mit MsgBox und Zeitmessungfunktion.
p.s. reicht selbst das Excelsymbol in der taskleiste anzuklicken (ohne dass optisch was passiert)
 
Zuletzt bearbeitet:
p.s. inzwischen Office 2016 32 Bit, 2019 32 Bit und 2019 64 Bit durch.
Alles unverändert.
 
Habe noch was herausfinden können:

Wenn der Mauszeiger nach der MsgBox außerhalb der Zellen gezogen wird
(anderen Bildschirm wenn dort nicht der Code ist), die Ribbon Leiste, die Taskleiste, aber selbst schon über einen eingebauten Button reicht)
dann arbeitet Excel wieder schnell weiter!

Kann es was mit dem Tracking vom MouseOver zu tun haben?
Etwas was auf dem PC ist oder in Office? Könnte ich das Tracking der Mausposition deaktivieren? eigentlich brauche ich nur Auslösen per Click.
Bin zufrieden, wir kommen der Lösung näher... hoffentlich ;)

p.s. selbst an meinem Rechner, wo ich dachte das Problem nicht zu haben, kann ich dadurch schneller das Programm durchrechnen lassen.
3,5 Sekunden statt 4-5 Sekunden.

Wieder anderer Customrechner (nicht von HP)
7,5 Sekunden statt 10,5 Sekunden.

Vielen lieben Dank für neue Ideen :)
Grüße Martin
 
Hast du denn MouseOver irgendwo in Gebrauch? Das kann schon massiv was ausmachen, das läuft praktisch ständig, so oft es kann, wenn du die Maus in so einem Bereich bewegst. Da sollte man schon aufpassen :-)
 
Hallo =)
nein Mouseovers nutze ich nicht.
Die Auslösung des Programm erfolgt via Active-X Steuerelementen(Buttons) und Klick.
 
Nutzt Du vielleicht einen Treiber/Zusatzsoftware für die Maus, die da reingrätschen könnte?
 
Logitech an allen drei Rechnern, also denke ja....
Hatte ich auch schon im Blick und müsste ich mal testen.

Laufen die Performance MX auch ohne Software von Logitech?
(ohne Zusatztasten dann halt)
 
M--G schrieb:
Hallo =)
nein Mouseovers nutze ich nicht.
Die Auslösung des Programm erfolgt via Active-X Steuerelementen(Buttons) und Klick.

Nur falls es untergegangen ist. Ein anderes Addon mit dem du nix zu tun hast, triggert vielleicht dieses Event (oder macht sonstwas) was das Problem erklären könnte. Beim Troubleshooting ist es daher nie verkehrt den Addon Dialog aufzumachen und sämtliche Addons temporär zu deaktivieren um zu sehen ob sich das Verhalten ändert.
 
Zurück
Oben