Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Userform geöffnet ?

Forumthread: Userform geöffnet ?

Userform geöffnet ?
marioS
Hallo
ganz einfache frage
wie kann ich abfragen, ob eine UF bereits geöffnet ist, ohne dass die UF_Initialize-Proz. startet ?
z.Bsp. habe ich einen button auf einem sheet, mit dem ich die UF anzeige (UF.show)
mit
if UF.visible=true then exit sub
frage ich ab, ob die UF bereits geöffnet ist - dabei startet allerdings die Initialize-Proz. Das möchte ich gerne verhindern, nur wie ?
Danke schon mal
marioS

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform geöffnet ?
03.09.2012 18:32:31
Luschi
Hallo marioS,
es gibt eine Userfirm-Auflistung, in der alle geöffneten Formulare verewigt sind.

Sub test1()
Dim frm As UserForm
For Each frm In UserForms
Select Case frm.Caption
Case "?"
MsgBox "Ätzsch..., bin schon geöffnet!", vbInformation
End Select
Next f
Set frm = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Userform geöffnet ?
03.09.2012 18:40:50
fcs
Hallo mario,
1. Das Problem dürfte ja nur bei Userforms akut sein, deren Status für "ShowModal" auf False gesetzt ist.
Ist das bei dir der Fall?
Andernfalls kannst du in Excel auf nichts anderes als Userform-Elemente klicken.
2. Die Initialize-Proz. wird nur gestartet, wenn das Userform noch nicht in den Arbeitsspeicher geladen ist. Das Laden eines Userforms erfolgt immer mit der 1. Show-Anweisung für das UF. Das UF wird wieder aus dem Arbeitsspeicher entladen, wenn
a) die Anweisung "Unload UseformXYZ" ausgeführt wird
b) die Schließen-Fläche rechts-oben geklickt wird
c) die Datei geschlossen wird
d) Excel geschlossen wird
e) Das VBA-Projekt mit dem Userform zurückgesetzt wird.
In soweit reicht eine Anweisungsfolge
If UserformXYZ.Visible = False then
UserformXYZ.Show
End If
immer um ein Userform anzuzeigen.
Wenn bei dir der Code in der Initialize-Proz. unerwünscht ist, wenn der Status des Userforms geprüft wird, dann ist in der Logik deines Codes irgendwo ein Denkfehler.
Wenn du mehrfach eine Userform einblenden/ausblenden willst ohne dass die Initialisierungsprozedur ausgeführt wird, dann darfst du das Userform immer nur mit userformXYZ.Hide ausblenden und nicht einfach schliessen bzw. mit Unload entladen.
Gruß
Franz

Anzeige
AW: Userform geöffnet ?
04.09.2012 11:21:28
marioS
Hallo fcs und Luschi,
vielen Dank, die Erläuterungen zu den uf sind sehr gut, so kompakt habe ich das noch nirgends gelesen.
Werde meine uf-programmierung dahingehend prüfen
Gruß, marioS
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18