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

Probleme erneutem Aufruf der UserForm

Probleme erneutem Aufruf der UserForm
19.03.2020 15:54:55
Thomas
Guten Tag hier im Forum,
der Corona Virus zwingt viele zum Homeoffice, so auch bei mir.
Ich versuche seit zwei Tagen den Auslöser zu finden, der für das angefügte Makro nach erneutem Start der Initialisierung für „ComboBox füllen ohne doppelte Einträge“ von 3 Sekunden auf ca. 90 Sekunden erhöht und Excel "Keine Rückmeldung" anzeigt.
00:00:04 Erster Durchlauf
00:01:26 Zweiter Durchlauf mit "Keine Rückmeldung"
00:00:03 Erster Durchlauf nach Neustart Excel
00:01:36 Zweiter Durchlauf nach Neustart Excel mit "Keine Rückmeldung"
An der Zuweisung der CreateObject("Scripting.Dictionary") selber kann es wohl nicht liegen, weil nur dann, wenn die beiden ComboBoxen im Userform mit der einer Auswahl angesteuert werden tritt das Problem auf.
Kurze Erklärung des Makros und der der Tabelle:
Die Tabelle1 ist ein Datenexport aus einem Programm, um Bewegungsdaten von Linienbussen aus deren Bordrechner für bestimmte Linien zu analysieren, Zeitverzug durch Signalanlagen, Stau, Fahrgastaufkommen etc. Die Datensätze sind dem ausgewählten Zeitraum entsprechen sehr groß.
Die dargestellten Tabelle1 ist nur auf den, für das Makro erforderlichen Bereich, gekürzt worden.
Die Tabelle2 ist nur für die Dokumentation der Makrolaufzeiten.
Das Makro „Start“ bzw. die Code „frm_Eingabe_neu“ sind nur ein Auszug aus einem umfangreichen Tool.
Mit der UserForm sollen die derzeit aus den Bordrechnern fehlenden Daten der Sonderanzeige gesetzt werden.
Beispiel:
Start-Haltestelle: Lippstadt, Bustreff Bahnhof
Soll-Abfahrtzeit: 05:18:00
Wochentag: Mo
Nach betätigen Button „Start-Eingaben Prüfen“ wird über die „Function Start_Pruefung()“ der Autofilter gesetzt. Ist die Prüfung erfolgreich wir in der UserForm im „txt_Start_Pruefung“ das Ergebnis angezeigt.
Anschließend werden die betroffenen Haltestellen für die Sonderanzeige ausgewählt. Dieses ist aber in diesem Beispiel nicht weiter relevant.
Wenn jetzt über den Button „Beenden“ die UserForm verlassen wird, beendet das Makro, UserForm wird entladen. In der Überwachung der Ausdrücke VBA werden die Werte in den Variablen „hsh1“ und „hsh2“ aufgrund Nothing auch sauber zurückgesetzt.
Nach erneutem Makrostart, kommt es zu dem oben beschriebenen Zeitfehler.
Da der Upload hier auf 300KB beschränkt ist, musste die Tabelle1 von 42.751 auf 1.737 Datensätze gekürzt werden. Wodurch natürlich der Zeitfehler nicht auftritt.
Irgendetwas ist noch im Hintergrund nicht geschlossen, aber was? Da brauche ich Hilfe.
Danke schon mal im Voraus
Gruß Thomas
https://www.herber.de/bbs/user/135955.xls

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 16:29:10
Oberschlumpf
Hi Thomas,
im Klick-Ereignis des Beenden-Button schreibst du
Me.Hide

Das ist NICHT der Befehl zum Beenden des Userforms. Der Hide-Befehl macht das Userform nur unsichtbar. Das Userform ist aber NICHT entladen; alle gesetzten Werte sind auch weiterhin gültig.
Änder den Hide-Befehl um in
Unload Me
Dann steht im UserForm_Initialize-Ereignis der Befehl
Me.Show

Warum?
Nach Start des Userforms wird zuerst das UserForm_Initialize-Ereignis ausgelöst. Danach wird das Userform - automatisch - angezeigt. Der Show-Befehl ist - nicht - erforderlich!
Lösch oder deaktivier mal den Befehl Me.Show im UserForm_Initialize-Ereignis.
Hilfts?
Ciao
Thorsten
Tipp: um so viele Datenzeilen in der Bsp-Datei zu erhalten wie möglich, komprimier mal deine Bsp-Datei inklusive 42.751 Datenzeilen mit 7Zip.
Wenn das noch nicht hilft, lösch erst mal nur 5000 Zeilen, dann wieder mit 7Zip komprimieren, usw
Anzeige
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 16:44:55
Thomas
Der Upload Befehl steht in der Start Sub. Die UserForm wird aus einem größeren Tool aufgerufen. Das hier nicht aufgeführt ist. Dieser Auszug der Code verlangsamt das gesamte Tool. Des wegen habe ich es separiert dargestellt.
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 16:50:21
Oberschlumpf
a) du musst nich hallo schreiben, aber dein Text würde freundlicher! rüberkommen
b) deine Antwort passt nicht zu meinen Vorschlägen
c) ich bin raus
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 17:01:38
Thomas
Sorry, bin nicht am PC habe vom Handy geantwortet. Das ist ein bisschen eingeschränkt.
Wieso passt die Antwort nicht?
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 16:47:09
Thomas
Der Upload Befehl steht in der Start Sub. Die UserForm wird aus einem größeren Tool aufgerufen. Das hier nicht aufgeführt ist. Dieser Auszug der Code verlangsamt das gesamte Tool. Des wegen habe ich es separiert dargestellt.
Anzeige
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 16:53:30
Thomas
Das mit 7zip habe ich versucht. Klappt aber nicht. Die Datensätze kann man kopieren nur das Datum muss fortlaufend sei.
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 17:31:22
onur
Durch deine "geniale" Idee, Me.Show in Userform.Initialize zu schreiben, wird die Userform 2x ge"SHOW"t, Wenn du beim ersten Mal mit "Beenden" rausgehst, ist beim 2. Öffnen dank
Set hsh1 = Nothing
Set hsh2 = Nothing

hsh1 und hsh2 bereits leer.
ME.SHOW ist murks und
Set hsh1 = Nothing
Set hsh2 = Nothing

gehören in Userform_Terminate.
AW: Probleme erneutem Aufruf der UserForm
19.03.2020 17:40:27
Thomas
Hallo onur,
Danke dir, werde, wenn ich zurück bin das mal bereinigen und testen.
Gruß Thomas
Anzeige
AW: Probleme erneutem Aufruf der UserForm
21.03.2020 09:12:30
Thomas
Guten Morgen,
habe die Ratschläge von "onur" beachtet, zusätzlich noch im Modul Start
MsgBox "Anzahl geladene UserForms: " & UserForms.Count eingearbeitet.
UserForm sind alle raus nach Abschluss des Moduls, alle Variablen sind leer.
Das Modul und die UserForm aus der Arbeitsmappe in die Personal.xlb verschoben.
Das Zeit-Problem bleibt, erst nach Neustart der Arbeitsmappe (Nicht Neustart Excel) läuft der erste durchlauf problemlos, dann im zweiten Versuch das gleiche wie vorher statt 3 Sek. wieder 90 Sek.
Da scheint an Excel zu liegen, da wird etwas im Arbeitsspeicher belegt, was im zweite Durchlauf Excel ausbremst.
Erstmal Danke werde mal weiter forschen.
Gruß Thomas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige