Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
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
Prüfen, ob ein UF-Steuerelement existiert
Martin
Hallo liebe Excelfreunde,
gibt es eine einfache Möglichkeit (möglichst ohne "On Error"-Auswertung) abzufragen, ob bestimmte UserForm-Steuerelemente existieren? Ich habe mir eben eine kleine Function geschrieben, aber vielleicht geht es ja auch wesentlich einfacher in der Art "If Controls("NameSteuerelement") Exist Then...".
Function ControlExist(NameSteuerelement As String) As Boolean
Dim cnt As Control
For Each cnt In Me.Controls
If cnt.Name = NameSteuerelement Then
ControlExist = True
Exit Function
End If
Next
End Function
Viele Grüße
Martin

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

Betreff
Benutzer
Anzeige
AW: Prüfen, ob ein UF-Steuerelement existiert
28.02.2011 17:30:32
Josef

Hallo Martin,
was ist an deiner Funktion auszusetzen?

Gruß Sepp

AW: Prüfen, ob ein UF-Steuerelement existiert
28.02.2011 17:41:03
Martin
Hallo Josef,
nein, an meiner Function gibt es nichts auszusetzen. Da ich öfters unnötige Umwege gehe, wollte ich mich einfach nur nach einer einfacheren direkten VBA-eigenen Kontrollmöglichkeit erkundigen.
Viele Grüße
Martin
ohne Schleife
28.02.2011 22:02:28
ransi
HAllo MArtin
ICh hätte noch was Schleifenfreies:
Function ControlExist(NameSteuerelement As String) As Boolean
    Dim cnt As MSForms.Control
    On Error Resume Next
    Set cnt = Me.Controls(NameSteuerelement)
    ControlExist = Err = 0
    On Error GoTo 0
End Function


Aber ob das einfacher ist ...?
ransi
Anzeige
AW: ohne Schleife
28.02.2011 22:17:42
Martin
Hallo Ransi,
vielen Dank für deine Antwort. Hm..., also gibt es scheinbar wirklich keinen "einfachen Einzeiler". Was denkst du ist von der Performance her besser geeignet - dein oder mein Code? Ich vermute ja fast dein Code, obwohl ich ungern gezielt mit VBA-Fehlern arbeite, um an ein Ergebnis zu kommen. Echt schade, dass es keine direkte Möglichkeit der Abfrage gibt.
Viele Grüße
Martin
AW: ohne Schleife
28.02.2011 22:29:55
ransi
HAllo MArtin
Was denkst du ist von der Performance her besser geeignet - dein oder mein Code?
Füg nochmal ein par Steuerelemente in deine Userform ein und probiers aus ;-)
Option Explicit

Private Sub CommandButton1_Click()
    Dim i As Long
    Dim T As Double
    T = Timer
    For i = 1 To 100000
        ControlExist "abc"
    Next
    Debug.Print Timer - T
End Sub



'Function ControlExist(NameSteuerelement As String) As Boolean
' Dim cnt As MSForms.Control
' On Error Resume Next
' Set cnt = Me.Controls(NameSteuerelement)
' ControlExist = Err = 0
' On Error GoTo 0
'End Function

Function ControlExist(NameSteuerelement As String) As Boolean
    Dim cnt As Control
    For Each cnt In Me.Controls
        If cnt.Name = NameSteuerelement Then
            ControlExist = True
            Exit Function
        End If
    Next
End Function


ransi
Anzeige

248 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige