Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform Control-Typen

Userform Control-Typen
07.12.2004 17:00:43
Rolf
Hallo Forum,
wie kann ich die in einer Userform
verwendeten Control-Typen abfragen?
Herzliche Grüße
Rolf
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Control-Typen
yps
hi Rolf,
meinst du sowas ?

Sub type_of_control()
Dim ctrcheck As MSForms.Control
For Each ctrcheck In Me.Controls
If TypeOf ctrcheck Is MSForms.TextBox Then MsgBox "was auch immer du machen willst"
Next
End Sub

cu Micha
AW: Userform Control-Typen
07.12.2004 18:18:51
Rolf
Hallo Micha,
dank dir.
Ich hatte allerdings eine Lösung erhofft,
die mir, statt alles abzufragen,
direkt den Control-Typ zurück gibt.
HG
Rolf
Anzeige
AW: Userform Control-Typen
yps
hi Rolf,
na dann so:
x = TypeName(ctrcheck)
cu Micha
Genau!!!
07.12.2004 19:57:35
Rolf
Hallo Micha,
dank dir nochmals.
So wollte ich das.
Herzliche Grüße
Rolf
AW: Userform Control-Typen
07.12.2004 20:11:17
Rolf
Hallo Micha,
möglicherweise kannst du mir auch eine Frage
beantworten, die ich schon ein paar mal
vergeblich im Forum gestellt habe:
Weisst du, ob und wie in einer Userform
ein Pivottable-Control auf ein Spreadsheet-Control
als Datenquelle zugreifen kann?
Herzliche Grüße
Rolf
Anzeige
AW: Userform Control-Typen
yps
hi Rolf,
ich wusste bis eben noch nicht einmal das es ein pivotable-control gibt :-(
aber nichtsdestotrotz (hübsches wort)
was ich auf die schnelle gefunden habe:
PivotTable1.DataSourceName = "Spreadsheet1"
aber wie nun weiter ? sorry
cu Micha
AW: Userform Control-Typen
07.12.2004 22:31:47
Rolf
Hallo Micha,
schade, dank dir trotzdem.
Im übrigen befinden wir uns in
prominenter Gesellschaft:
MVP Melanie Breden weiss es auch nicht.
Aber man soll ja die Hoffnung nicht aufgeben.
Gute Nacht
Rolf
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform Control-Typen in Excel VBA


Schritt-für-Schritt-Anleitung

Um die in einer Userform verwendeten Control-Typen abzufragen, kannst du folgenden VBA-Code verwenden. Dieser Code iteriert über die Controls in deiner Userform und gibt den Typ jedes Controls zurück.

Sub type_of_control()
    Dim ctrcheck As MSForms.Control
    For Each ctrcheck In Me.Controls
        MsgBox "Control-Typ: " & TypeName(ctrcheck)
    Next
End Sub

Dieser Code nutzt die Funktion TypeName, um den Typ jedes einzelnen Controls zu ermitteln. Die Variable ctrcheck wird für jedes Control innerhalb der Userform verwendet. Me.Controls gibt alle Controls in der Userform zurück.


Häufige Fehler und Lösungen

  1. Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass du die richtige Referenz für MSForms in deinem VBA-Projekt gesetzt hast. Gehe zu "Extras" > "Verweise" und aktiviere die benötigten Bibliotheken.
  2. Fehler: "Objektvariable nicht festgelegt"

    • Lösung: Dies kann passieren, wenn du versuchst, auf Controls zuzugreifen, die nicht existieren oder noch nicht initialisiert wurden. Überprüfe, ob deine Userform korrekt geladen ist.

Alternative Methoden

Eine andere Möglichkeit, die Control-Typen abzufragen, besteht darin, eine Funktion zu erstellen, die den Typ eines bestimmten Controls zurückgibt. Hier ist ein Beispiel:

Function GetControlType(ctrl As MSForms.Control) As String
    GetControlType = TypeName(ctrl)
End Function

Du kannst diese Funktion dann innerhalb deiner Userform aufrufen, um den Typ eines bestimmten Controls zu ermitteln.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das verschiedene Control-Typen in einer Userform abfragt und sie in einer Liste anzeigt:

Sub ListControlTypes()
    Dim ctrcheck As MSForms.Control
    Dim controlList As String

    For Each ctrcheck In Me.Controls
        controlList = controlList & TypeName(ctrcheck) & vbCrLf
    Next

    MsgBox "Die Userform enthält die folgenden Control-Typen:" & vbCrLf & controlList
End Sub

Dieses Skript gibt dir eine Übersicht über alle Control-Typen in der Userform.


Tipps für Profis

  • Nutze die Select Case-Anweisung, um spezifische Aktionen basierend auf dem Control-Typ durchzuführen. Dies kann deinen Code klarer und effizienter machen.
  • Wenn du große Userforms hast, kannst du die Performance optimieren, indem du nur die benötigten Controls abfragst, statt alle Controls in der Userform.

FAQ: Häufige Fragen

1. Wie kann ich den Typ eines Controls in einer Userform zurückgeben?
Du kannst die Funktion TypeName verwenden, um den Typ eines Controls zu ermitteln, wie im obigen Beispiel gezeigt.

2. Was ist der Unterschied zwischen Me.Controls und Userform.Controls?
Me.Controls bezieht sich auf die Controls der aktuellen Userform, während Userform.Controls auf die Controls einer spezifischen Userform verweist. In den meisten Fällen ist Me.Controls praktischer.

3. Kann ich auch andere Control-Typen abfragen?
Ja, du kannst alle Arten von Controls abfragen, die in Excel VBA verfügbar sind, einschließlich Textboxen, Comboboxen, Schaltflächen und viele mehr.

4. Was ist, wenn mein Control-Typ nicht erkannt wird?
Stelle sicher, dass das Control in deiner Userform vorhanden ist und dass du die richtigen Bibliotheken in deinem VBA-Projekt referenziert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige