Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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

Prozess mit Haltepunkt schneller

Prozess mit Haltepunkt schneller
14.10.2019 14:36:12
Dietmar
Hallo!
Ich hab ein komisches Problem dem ich nicht beikomme.
Eine Sub (sagen wir UP dazu) wird von mir mit dem SelectionChange Ereignis aufgerufen.
Die Sub UP hat einen Übergabeparameter.
Starte ich die Sub UP von irgendeiner Hilfssub aus braucht sie 1,9sek.
Starte ich die Sub UP vom SelectionChange Ereignis benötigts sie 8-14sek.
Setze ich allerdings im SelectionChange Ereignis irgendwo einen Haltepunkt im Debugmodus und fahre mit F5 fort benötigt sie wieder nur 1,9sek.
Ich hab alles probiert was mir einfällt. enableEvents, screenupdating, CalculationMode, Wartezeit, sogar eine Userform kurz öffnen und wieder schliessen, eine Msgbox und noch einiges mehr.
Auch in den Prozeduren alles auskommentiert was nicht zwingend notwendig ist.....
Hab auch nach einer Möglichkeit gesucht wie ich das SelectionChange Ereignis beenden lassen könnte und danach die Sub zu starten, aber da fällt mir auch nichts ein.
Hat irgendwer eine Idee dazu was ich da machen könnte, bzw. was da schuld daran ist?
Das hält mich jetzt schon ganz schön lange auf.
Danke, Dietmar

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozess mit Haltepunkt schneller
14.10.2019 14:41:33
ChrisL
Hi Dietmar
Die Problemursache liegt höchst wahrscheinlich im Code. Weiter gehen meine hellseherischen Fähigkeiten leider nicht ;)
EnableEvents hört sich gut an. Noch besser, du verzichtest ganz auf Select/Activate, so dass das Event gar nicht erst anspringt.
cu
Chris
AW: Prozess mit Haltepunkt schneller
14.10.2019 15:08:28
Dietmar
Ich verwende kein Select/Activate.
Wenn ich mit der Maus in eine bestimmte Zelle klicke soll dieses Event ja ausgeführt werden.
Mein Problem ist nicht das Event. Sondern das die Abarbeitung nur dann schnell ausgeführt wird wenn ich einen Haltepunkt setze und dann mit F5 wieder fortfahren lasse.
Auch wenn ich den ganzen Code von der Sub UP direkt in das Event kopiere bleibt es dasselbe.
Hier ist der Ausschnitt des Codes. Als ob das Event das Calculation nicht akzeptiert.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Antw = MsgBox(Text(144), vbYesNo, Text(49))
If Antw  vbYes Then
GoTo Weiter
Else
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
For x = 1 To MaxAnzKurven
Daten_loeschen (x)
Next x
End If
End Sub

Sub Daten_loeschen(ByVal Nr As Integer)
With ThisWorkbook.Sheets("Aufzeichnung " & Nr)
.Range("Aufzeichnung_Messung_lfdnr") = ""
.Range("Aufzeichnung_MessungName") = ""
.Range("Aufzeichnung_Datum") = ""
.Range("Aufzeichnung_Luftdruck") = ""
.Range("Aufzeichnung_Temperatur") = ""
.Range("Aufzeichnung_Feuchte") = ""
.Range("Aufzeichnung_Primär_Z1") = ""
.....
.....
.Range(.Range("Aufzeichnung_LiveUmin_Vertikal1NM").Offset(1, 0), .Range("Aufzeichnung_LiveUmin_Vertikal1NM").Offset(5000, 0)).ClearContents
.Range(.Range("Aufzeichnung_LiveUmin_WerteSummiert").Offset(1, 0), .Range("Aufzeichnung_LiveUmin_WerteSummiert").Offset(5000, 0)).ClearContents
.Range(.Range("Aufzeichnung_Zeit_Sekunden").Offset(1, 0), .Range("Aufzeichnung_Zeit_Sekunden").Offset(5000, 0)).ClearContents
.Range(.Range("Aufzeichnung_Zeit_Anzeige").Offset(1, 0), .Range("Aufzeichnung_Zeit_Anzeige").Offset(5000, 0)).ClearContents
.Range("Aufzeichnung_LiveUmin_NM").ClearContents
.Range("Aufzeichnung_LiveUmin_Umin").ClearContents
.Range("Aufzeichnung_LiveUmin_AnzahlPunkte").ClearContents
.Range("Aufzeichnung_LiveUmin_Standard").ClearContents
.Range("Aufzeichnung_LiveUmin_Korrekturfaktor").ClearContents
.Range("Aufzeichnung_LiveUmin_Auflösung_vertikal").ClearContents
.Range(.Range("Aufzeichnung_LiveNM_Werte").Offset(1, 0), .Range("Aufzeichnung_LiveNM_Werte").Offset(5000, 0)).ClearContents
.Range(.Range("Aufzeichnung_LiveNM_WerteBerechnet").Offset(1, 0), .Range("Aufzeichnung_LiveNM_WerteBerechnet").Offset(5000, 0)).ClearContents
.Range("Aufzeichnung_LiveNM_Aktiv") = False
.Range("Aufzeichnung_LiveNM_Faktor") = ""
.Range("Aufzeichnung_CRC_Daten").ClearContents
.Range("Aufzeichnung_CRC_Werte").ClearContents
.Range("Aufzeichnung_CRC_Daten_lokal").ClearContents
.Range("Aufzeichnung_CRC_Werte_lokal").ClearContents
.Range("Aufzeichnung_Version").ClearContents
End With
ThisWorkbook.Sheets("Übersicht").Range("Übersicht_PS_fCell").Offset(Nr * 2, 0) = "o"
ThisWorkbook.Sheets("Übersicht").Range("Übersicht_NM_fCell").Offset(Nr * 2, 0) = "o"
ThisWorkbook.Sheets("Übersicht").Range("Übersicht_PSNM_fCell").Offset(Nr * 2, 0) = "o"
ThisWorkbook.Sheets("Übersicht").Range("Übersicht_Auswahl_Titel").Offset(Nr * 2, 0) = "()"
End Sub
Anzeige
AW: Prozess mit Haltepunkt schneller
14.10.2019 15:29:46
ChrisL
Hi Dietmar
Ja ein Select sehe ich hier auch nicht :)
(wäre m.E. eine naheliegende Ursache gewesen)
Mir scheint es unwahrscheinlich, dass die Problemursache im gezeigten Code liegt. Ein paar ClearContents Befehle sollten m.E. nicht 1-2 Sekunden dauern (geschweige denn 15 Sekunden).
Wenn du uns eine Excel-Beispielmappe zur Verfügung stellst, anhand derer sich das Problem rekonstruieren lässt, dann könnte man die Laufzeit(-fresser) näher analysieren.
cu
Chris
AW: Prozess mit Haltepunkt schneller
14.10.2019 17:25:30
onur
Wieso postest du nicht die Subs komplett?
AW: Prozess mit Haltepunkt schneller
15.10.2019 10:22:19
Dietmar
Weil ich die Subs schon auf diese Länge zusammengekürzt hatte und das Problem weiterhin bestand.
Das mit der neuen Mappe werd ich noch probieren! Und auf einem anderen Rechner.
Vielleicht ist da ja irgendein Rappel.
Anzeige
Zeitmessungen ...
14.10.2019 18:28:43
lupo1
... sind oft beim 1. und 2. Mal anders, da beim 2. Mal der Code (= die Maschinensprachbibliothek) schon vorrätig ist.
AW: Zeitmessungen ...
15.10.2019 10:24:49
Dietmar
OK. Das könnte schon mal erklären warum es einmal 8sek und einmal 16sek dauert.
Wenn ich es nicht aus dem Event starte braucht die erste Tabelle ~0,2sek und die restlichen 15 ~0,1sek. Hängt vielleicht auch damit zusammen?!
Es gibt noch mehr Ursachen
15.10.2019 10:34:49
lupo1
Eine davon ist, dass Windows allen Prozessen automatisch Rechenzeit zuteilt.
Daher muss man die gemessenen Differenzen gelassen hinnehmen - und zeitkritische Dinge mit Reserven und mit Stopps versehen.
Ein Anhaltspunkt wäre, die Messung z.B. 10mal durchzuführen und dann den Median als Zeit zu verwenden.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige