Variabler Objektname

Matschlag

Mitglied
Hallo,

ich stehe vor folgendem Problem. Ich habe in einer Excel Datei mehrere Kontrollkästchen und möchte diese ein- bzw. ausblenden. Die Kontrollkästchen sind alle nach dem gleichen Schema benannt (CheckBox1, Checkbox2, etc.). Als VB-Laie war mein Lösungsansatz wie folgt:

Private Sub CommandButton1_Click()

Dim i As Integer
Dim OName As String 'Objektname

For i = 1 To 20
OName = "CheckBox" & CStr(i)
OName.Visible = False
Next i

End Sub

Bitte um Info wie es richtig lauten muss.

Vielen Dank
Matschlag
 
Was du suchst ist ein Control-Array, welches aber soweit ich das sehe in VBA/Excel nicht unterstützt wird.

Als Workaround kann man wie folgt arbeiten.

Folgendes:
Erstelle eine UserForm
Erstelle auf der Form deine Checkboxen
Diese sollten alle den gleichen Namen mit fortlaufender Nummer haben (CheckBox1, CheckBox2 usw.)
Dann folgenden Code in deine UserForn einfügen:
Visual Basic:
Private Sub UserForm_Activate()
Dim x As Control

    For Each x In UserForm1.Controls
    
        If InStr(1, x.Name, "CheckBox") > 0 Then x.Visible = False
    
    Next

End Sub
 
Hat super geklappt. Mit der UserForm wird die Lösung wesentlich professioneller als ich sie ursprünglich geplant habe.

Vielen Dank!
Matschlag
 

Neue Beiträge

Zurück