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
Inhaltsverzeichnis

Alle Controls im Tabellenblatt referenzieren

Forumthread: Alle Controls im Tabellenblatt referenzieren

Alle Controls im Tabellenblatt referenzieren
12.06.2013 15:32:42
NoNet
Hallo Leute,
heute ist mir anscheinend echt zu heiß :-(
Kann mir jemand auf die Sprünge helfen, wie man alle Formular-Steuerelemente auf einem Tabellenblatt referenzieren kann ?
Auf einem UserForm ist das einfach :

For Each cnt In Me.Controls
MsgBox TypeName(cnt), , cnt.Name
Next

Die ActiveX-Steuerelemente auf einem Tabellenblatt kann man auch einfach referenzieren (mit der _ zusätzlichen Anweisung If TypeOF cnt is MSForms.CommandButton Then lassen sich z.B. alle CommandButtons ansteuern):

For Each cnt In ActiveSheet.OLEObjects
MsgBox cnt.Name
Next

Die Formular-Steuerelemente kann man aber offenbar nur über ihren konkreten Typ (Button, _ ListBox, Label etc.) ansteuern, oder (hier nur CommandButtons) ?

For Each cnt In ActiveSheet.Buttons
MsgBox cnt.Name
Next
'Das funktioniert leider nicht :
'    For Each cnt In ActiveSheet.Controls
'        MsgBox cnt.Name
'    Next

Gibt es ein übergeordnetes Object (ähnlich wie OLEObjects), das die Formular-Steuerelemente zusammenfasst ?
Ich möchte NICHT Shapes, DrawingObjects oder ähnliches verwenden.
Die VBA-Objekt-Referenz schweigt sich hierüber leider aus :-(
Danke, Gruß NoNet

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Controls im Tabellenblatt referenzieren
12.06.2013 16:50:02
fcs
Hallo NoNet,
du wirst nicht ohne den Umweg über die Shape-Objekte auskommen.
Über den Shape-Typ kannst du die FormularSteuerelemente rausfischen.
Gruß
Franz
'Beispiel: Die Prüfung des FormControlType kann man sich natürlich auch schenken
Sub Find_FormularSteuerelemente()
Dim objShape As Shape, strFormControlTyp As String
Dim wks As Worksheet
Set wks = ActiveSheet
For Each objShape In wks.Shapes
If objShape.Type = msoFormControl Then
Select Case objShape.FormControlType
Case xlButtonControl: strFormControlTyp = "Schaltfläche"
Case xlCheckBox: strFormControlTyp = "Kontrollkästchen"
Case xlDropDown: strFormControlTyp = "Kombinationsfeld"
Case xlEditBox: strFormControlTyp = "Textfeld"
Case xlGroupBox: strFormControlTyp = "Gruppenfeld"
Case xlLabel: strFormControlTyp = "Beschriftung"
Case xlListBox: strFormControlTyp = "Listenfeld"
Case xlOptionButton: strFormControlTyp = "Optionsschaltfläche"
Case xlScrollBar: strFormControlTyp = "Bildlaufleiste"
Case xlSpinner: strFormControlTyp = "Drehfeld"
Case Else
strFormControlTyp = "unbekannt"
End Select
MsgBox "Name: " & objShape.Name & vbLf & "FormControlType: " & strFormControlTyp
End If
Next
End Sub

Anzeige
Danke dir, Franz ! _oT
13.06.2013 15:55:39
NoNet
_oT = "ohne Text"
;

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