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

Unload Userform

Unload Userform
25.02.2015 10:33:17
Ralf
Hallo,
wie kann ich feststellen, ob eine Userform angezeigt wird?
Wenn ich ein Unload mache, obwohl diese nicht geladen ist, wird UserForm_Initialize ausgeführt, was unerwünscht ist. Hab den Code schon ins Activate verschoben, was aber ncit der Sinn sein soll.
Hintergrund: meine Fehlerbehandlung resettet alles mögliche, u.a. auch das Entladen der UF, weil ich das nicht jedesmal schreiben möchte.
Public Function Ende()
?if loaded(Artikelanlage_Dialog)?
Unload Artikelanlage_Dialog
With Application
.EnableEvents = True
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Function

Danke für die Hilfe!
Gruß
Ralf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit UserForm.Visible ... owT
25.02.2015 11:11:51
Matthias

Matthias, Danke, jedoch..
25.02.2015 11:25:55
Ralf
wie kann ein nicht vorhandenes/initialisiertes Objekt abgefragt werden?
Bisher hatte ich VBA als strikt in diesem Punkt in Erinnerung.
Dennoch, es geht :).
Gruß
Ralf

AW: Unload Userform
25.02.2015 13:09:45
EtoPHG
Hallo Ralf,
Mit Standard VBA-Mitteln kannst du das nicht von aussen feststellen. Jede Referenzierung von Eigenschaften der Userform führt zu einem Laden des Klassenmoduls der UF und durchläuft somit den Initialize. Das macht selbst eine Abfrage wie von Matthias L vorgeschlagenem Userform.Visible. Die Frage ist, warum dich das .Initialize stört? Dein Unload, lädt zwar das Klassenmodul der UF, durchläuft den Initialize, aber entlädt es auch unmittelbar danach wieder.
Gruess Hansueli

Anzeige
AW: Unload Userform
25.02.2015 13:34:57
Ralf
Hallo Hansueli,
nach einigen Tests habe ich festgestellt, dass ihr beide Recht habt.
Wird die UF das erste Mal angefasst (in dem Falle mit .Visible), wird sie geladen.
Wurde sie bereits geladen, wird sie es nicht noch einmal, wenn man nur die Eigenschaft aufruft.
Merkwürdiges Verhalten. Das Lokal-Fenster - mit dem ich in letzter Zeit immer mehr arbeite - gibt hier leider keine Auskunft.
Mich stört das Initialize deswegen, weil ich hier schon Operationen ausführe, wie schreibvorgänge etc..
Evtl. sollte ich das zukünftig ins Activate Ereignis verlegen? Gibt es da was zu beachten?
Ich habe schon viele Projekte, in deren Initialize' ein Haufen Zeug steht. U.a. wird aus vielen Dateien gelesen, weswegen es schon auf Schnelligkeit ankommt und deshalb das unnötigerweise aufgerufene Initialize unerwünscht ist.
Gruß
Ralf

Anzeige
Wald vor lauter Bäumen..
25.02.2015 13:53:45
Ralf
.. manchmal
Dabei ist es so einfach, in der Userforms-Auflistung befinden sich nur geladene.
Public Function Ende()
Dim UF As UserForm
Stop
For Each UF In UserForms
Unload UF
Next
..und alles kann so bleiben, wie es ist ;)
Gruß
Ralf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige