Fragensteller
Excel Userforms frier ein

Frage
-
Hallo,
nach der Umstellungen auf Windows 10 mit Office 2013 bzw. 2016 haben wir das Phänomen, dass UserForms in Excel bei Aufruf mit "frm.Show" einfrieren.
Die Rechner hängen im Firmennetz und wurden alle neu aufgesetzt. Es läuft nur noch ein Sophos-Virenscanner.
Die Formulare werden per Sub-Prozedur in eine Variable geladen, Steuerelemente angepasst un anschließend mit Shoe angezeigt. Beispiel:
sub Test dim frm as frmTest set frm = new frmTest With frm .txtTest.value = 123 ... end with frm.Show end Sub
Die Datei läuft in Windows 7 mit Excel 2010 seit Jahren problemlos. Auch auf einem privaten Rechner den ich mit Win10 und Office 2013 neu aufgesetzt hab, läuft es ohne Probleme.
Wenn man mit STRG+Pause das Skript anhält, dann sieht man, dass er bei frm.Show hängt.
Manchmal geht es plötzlich nach rund 10 Minuten weiter, manchmal schießen wir Excel ab, starten Datei neu und plötzlich geht es an der gleichen Stelle wieder weiter.
Von Office reparieren, Datei reparieren, etc. haben wir alles schon durch. Auf einem privaten Rechner läuft es tadellos, nur auf den Firmenrechnern nicht.
Die Formulare beinhalten kaum Logik, teilweise nur ein Eingabefeld mit 2 Schaltflächen.
Welche Ursachen könnte es haben, dass die Formulare sporadisch beim Anzeigen einfrieren?.
Für jeden Hinweis dankbar.
MfG
Mario Batz
Alle Antworten
-
Am 10.10.2019 schrieb Mario Batz:
Die Rechner hängen im Firmennetz und wurden alle neu aufgesetzt. Es läuft nur noch ein Sophos-Virenscanner.
Lass den doch mal probehalber komplett und rückstandsfrei
deinstallieren. Zweimal sauber neu starten und testen. Falls es dann
funktioniert, kann man in den Tiefen von Sophos nach möglichen
Ursachen schauen.Servus
Winfried
WSUS Package Publisher:
https://github.com/DCourtel/Wsus_Package_Publisher
HowTos zum WSUS Package Publisher
https://www.wsus.de/wsus-package-publisher/
GPO's: http://www.gruppenrichtlinien.de
NNTP-Bridge für MS-Foren:
https://github.com/JochenKalmbach/communitybridge
GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/ -
neue Erkenntnis...
das Problem tritt am meisten auf, wenn in Excel die Datei offen ist und der Rechner länger steht (~ >=10 Minuten) ohne jegliche Benutzereingabe. Ggf. schaltet sich noch der Bildschirmschoner ein. Mehr nicht.
Man könnte meinen, das System hätte plötzlich ein Problem mit der Forms-DLL.Wenn ich an dem Rechner das Formular per Skript mehrmalig auf/zu mache, dann läuft aber alles ganz normal.
Gibt es eine Möglichkeit die internen Aktionen beim Öffnen eines Formulars mit frm.show irgdnwie zu tracen? Mit VisualStudio zum Beispiel?
MfG
Mario
-
Nein leider nicht.
Die Forms liegen in einer forms20.dll, die von Office installiert wird.
Und Maschinencode lässt sich ohne Quellen so gut wie gar nicht debuggen.Was du ggf. prüfen kannst ist via Processexplorer (Sysinternals) beim "Hängenbleiben" die schlafenden Stacks zu prüfen wo die denn hängen bzw. warten.
Selten liegt es an den Forms selber.
Prüfe mal, welche Steuer-ELemente du auf der Form (ggf. auch unsichtbare) hast. Vielleicht initiierst du eine Kommunikation, die nun unendlich auf Timeout wartet?Nach der Rückkehr aus dem Show hilft es auch schon mal per "unload frm" die Form aus dem Speicher zu entladen. Immerhin gibt es eine Forms-Auflistung in der jede geöffnete Form zusätzlich gespeichert ist. Startest du eine Form 100 mal neu, hast du diese auch 100 mal im Speicher.
Besser ist es da, Forms in globalen Variablen zu halten so dass man sie nur 1x braucht.
Das Beenden von "Test" gibt nur die Variable frei, entlädt aber nicht die Form.- Bearbeitet Der Suchende Freitag, 11. Oktober 2019 08:16
-
Folgendes haben wir nun auf 4 verschiedenen Rechnern durchgeführt :
- Altuelles Windows-Build installiert
- Virenscanner abgeschaltet
- Office 2016 durch Office 2013 ersetzt und umgekehrt
- dem Anwender lokale Admin-Rechte gegeben
- Bildschirmschoner abgeschaltet
Wenn die Excel-Datei geöffnet und damit gearbeitet wird, läuft alles ganz normal. Sobald der Rechner länger steht, ohne das der Anwender etwas in Excel macht, friert beim Öffnen des nächsten Formulars (wir haben ca. 20 Formulare in der Excel-Datei) Excel komplett ein.
Im Tastmanager wird eine CPU-Last von >=40% angezeigt. Wenn man aber z.B. 10 Minuten wartet, dann geht es plötzlich wieder.
Was wir aber auf jeden Fall herausfinden konnten ... wenn ein Formular hängt und sich ein Mitarebeiter von der IT per Remotezugriff aufschaltet, dann ändert sich die Darstellung der Schrift im Formular etwas (die Schrift wird dünner als ob der Alias-Effekt abgeschlatet wird) und plötzlich geht das Formular wieder.
Man könnte meinen, dass irgend etwas an den Berechtigungen oder an der Grafikdarstellung faul ist.
Eine andere ähnliche Datei die genauso Programmiert wurde, funktioniert tadellos. Das Problem besteht auch nur unter Windows 10 im Unternehmensnetz.
Bei mir habe ich die Datei mit Windows 7 und Win 10, Office 2010-2016 problemlos getestet.
Die Formulare selbst haben kaum Logik. Es werden nur Steuerlemente für die Eingabe angezeigt, nach dem Betätigen der Schaltfläche wird das Formular ausgeblendet und die Datenverarbeitung findet im Modul wieder statt. Soweit kommen wir aber nicht, denn das Formular friert bereits beim Anzeigen ein.
Wenn wir Excel abschießen und die Datei neu starten, funktioniert wieder alles ganz normal.
Im Modul werden die Formulare referenziert, mit Show angezeigt und am Ende der Prozedur mit "unload" geschlossen und die Variable mit "Set = Nothing" geleert.
Das Dumme ist, das Problem tritt nur mit Windows 10 im Unternehmensnetz bei dieser einen Datei auf.
MfG
Mario -
Am 23.10.2019 schrieb Mario Batz:
Das Dumme ist, das Problem tritt nur mit Windows 10 im Unternehmensnetz bei dieser einen Datei auf.
Habt ihr den Inhalt der Datei schon mal in eine neue leere Datei
kopiert und damit probiert?BTW: Virenscanner kann man nicht abschalten, nur rückstandsfrei
deinstallieren.Servus
Winfried
WSUS Package Publisher:
https://github.com/DCourtel/Wsus_Package_Publisher
HowTos zum WSUS Package Publisher
https://www.wsus.de/wsus-package-publisher/
GPO's: http://www.gruppenrichtlinien.de
NNTP-Bridge für MS-Foren:
https://github.com/JochenKalmbach/communitybridge
GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/ -
Zumindest mein GData lässt sich auch kurzfristig deaktivieren.
Der "OnAccess-Scan" wird dann nicht mehr durchgeführt.
Klar ist er nach der vorgegebenen Zeit wieder da.Der Defender lässt sich wohl nur komplett ein- oder ausschalten aber nicht temporär.
Ansonsten:
Wird die Excel-Datei u.U. von einem Netzlaufwerk geladen?
Ist die Datei ggf. auch auf anderen Clients geöffnet?
Passiert dies auch, wenn die Datei lokal geöffnet wird?
Es gibt da einen Thread, der auf lange Opens beim Shared-Zugriff hinweist.