Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 10:50:21
Holger
Hallo zusammen,
habe einen Timer eingebaut, der soll aber nur sein Makro auslösen wenn alle Userforms geschlossen sind.
Wie prüfe ich ab ob alle Userforms geschlossen sind ?
Mit for each ... denke ich aber wie ?
Gruss
Holger Wächter

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 11:28:12
bst
Hallo Holger,
wenn Du die Userforms mit Unload beendest und nicht mit Hide sollte es ausreichen UserForms.Count abzufragen.
HTH, Bernd
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 12:24:49
Holger
Hallo Bernd,
mit Count kann ich das leider nicht machen da ich nicht alle Unloade. Kennst Du noch eine Lösung ?
Gruss
Holger
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 12:42:28
bst
Hi Holger,
versuch's mal so.
HTH, Bernd
--
Option Explicit

Function UserformActive() As Boolean
    Dim i%
    
    UserformActive = False
    For i = 0 To UserForms.Count - 1
        If UserForms(i).Visible = True Then
            UserformActive = True
            Exit Function
        End If
    Next
End Function


Anzeige
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 16:00:22
Holger
Das ist die LÖSUNG !!!
Alles klar funktioniert. Er geht alle Userforms durch die Hide oder Visible = true sind und wenn eine Visible = true ist wird dieses erkannt.
Vielen Dank
Holger
AW: Prüfen ob noch UserForms geöffnet sind !!!
ransi
Hallo Holger
Als Ansatz:


Option Explicit
Public Sub test()
Dim vbcom
For Each vbcom In Application.VBE.ActiveVBProject.VBComponents
    If vbcom.Type = 3 Then
        MsgBox vbcom.Name
    '    If vbcom.Visible = True Then
        '    MsgBox "Wenigstens eine Userform ist offen."
        '    Exit For
    '    Else:
    '       MsgBox "Alle Userformen zu."
    '    End If
    End If
Next
End Sub


.visible funzt allerdings leider genauso wenig wie
.hidden
oder
.enabled
darum "Frage noch offen"
Vieleicht hilfts dir trotzdem weiter.
ransi
Anzeige
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 12:16:28
Holger
Hallo ransi,
leider sagt er mir schon bei der Zeile 'Application.VBE.ActiveVBProject.VBComponents' :
Die Methode 'VBE' für das Objekt '_Application' ist fehlgeschlagen
Was kann ich tuen ?
Gruss
Holger
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 12:26:24
Holger
Sorry,
die Fehlermeldung ist: Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher.
Wie kann ich das umgehen ?
Gruss
Holger
AW: Prüfen ob noch UserForms geöffnet sind !!!
ransi
Hallo Holger
Menu extras-Makro-Sicherheit
Register "Vertrauenswürdige Quellen"
Hak da mal "Zugriff auf Visual Basic Projekt vertrauen an".
Ich glaube auch das ein Verweis von diesen für Application.VBE... zuständig ist.
VBA--&gtC:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\VBE6.DLL
Excel--&gtC:\Programme\Microsoft Office\Office10\EXCEL.EXE
stdole--&gtC:\WINDOWS\system32\stdole2.tlb
Office--&gtC:\Programme\Gemeinsame Dateien\Microsoft Shared\Office10\MSO.DLL
MSForms--&gtC:\WINDOWS\system32\FM20.DLL
Die habe ich zumindest gesetzt.
ransi
Anzeige
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 12:42:04
Holger
Alles klar,
Haken gesetzt und es klappt. Wie kann ich nun in dem Code von Dir die Abfrage hinkriegen. Habe da bis jetzt auch noch nichts geschafft.
Gruss
Holger
AW: Prüfen ob noch UserForms geöffnet sind !!!
18.07.2006 13:17:41
Holger
Hi,
man kann mit .activate abfragen, aber wenn ich das darüber laufen lasse, werden alle geöffneten UserForms einfach geschlossen.
Bitte um Hilfe
Gruss
Holger
AW
ransi
Hallo
Das war irgendwie zu einfach um auf Anhieb drauf zukommen:


Public Sub test()
If UserForms.Count Then
    MsgBox "Wenigstens eine Userform ist offen"
Else:
    MsgBox "Alle Userforms geschlossen"
End If
End Sub


Aus der Hilfe:
"Die UserForms-Auflistung ist eine Auflistung, deren Elemente jedes geladene UserForm in einer Anwendung darstellen. Die UserForms-Auflistung besitzt eine Count-Eigenschaft,.."
ransi
Anzeige
AW: AW
18.07.2006 15:55:13
Holger
Hi,
die Lösung kam ja schon von Berndt. Er meinte aber das klappt nur wenn alle Userforms unloaded sind und nicht nur hidden ?
Gruss
Holger
AW: AW
ransi
Hallo Holger
Teste mal:


Option Explicit
Public Sub test1()
Load UserForm1
test
End Sub
Public Sub test2()
UserForm1.Show vbModeless
test
End Sub
Public Sub test3()
UserForm1.Show vbModeless
UserForm1.Hide
test
End Sub
Public Sub test4()
UserForm1.Show vbModeless
Unload UserForm1
test
End Sub
Public Sub test()
If UserForms.Count Then
    MsgBox "Wenigstens eine Userform ist offen"
Else:
    MsgBox "Alle Userforms geschlossen"
End If
End Sub


Wenn die Userform geladen aber nicht sichtbar ist wird sie auch gezählt.
ransi
Anzeige
AW: AW
18.07.2006 16:14:07
Holger
Genau das war mein Problem.
Lösung steht weiter oben vom Berndt.
Vielen Dank auch für Deine Mühen
Gruss
Holger
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen