Kästchen mit Makro aktivieren

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Kästchen mit Makro aktivieren

    Hallo,
    vorweg Entschuldigung, kenne mich mit VBA kaum aus, daher weiß ich auch nicht, ob das Thema richtig zugeordnet ist.

    Ich will bestimmte Steuerelemente (Kästchen) auf meinem Arbeitsblatt mit einem Makro ansteuern. Mit dem folgende Code kann ich bereits alle Kästen an- oder ausklicken.

    Sub Textfeld4_BeiKlick()
    Dim Kaestchen As CheckBox
    For Each Kaestchen In ActiveSheet.CheckBoxes
    Kaestchen.Value = False
    Next Kaestchen
    End Sub

    Nun will ich von den 200 Kästchen aber nur 1-15 automatisch anklicken. Wie muss ich dafür das Makro ändern?

    Vielen Dank für Hilfe!
    Das hängt davon ab, wie du die 15 Kästchen von den anderen unterscheiden kannst.
    Wenn's die ersten 15 Kästchen in der Collection sind

    Visual Basic-Quellcode

    1. For i = 1 To 15
    2. ActiveSheet.OleObjects(i).Object.Value = False
    3. Next


    Wahrscheinlich musst du sie aber anhand der Eigenschaften "Name" oder "Caption" erkennen.
    Bei Name kannst du direkt adressieren:

    Visual Basic-Quellcode

    1. For i = 1 To 15
    2. ActiveSheet.OleObjects("CheckBox" & i).Object.Value = False
    3. Next

    Bei Caption wirds schon aufwendiger:

    Visual Basic-Quellcode

    1. For Each Kaestchen In ActiveSheet.OleObjects
    2. If Kästchen.Caption Like "CheckBox*" Then If CInt(Mid(Kaestchen.Caption, 9)) < 15 Then Kaestchen.Object.Value = False
    3. Next Kaestchen

    Nagel mich nicht auf Syntaxfehler fest. Ich habe das nicht getestet.

    Diese ganze Versuche sind sowieso ein falscher Design-Ansatz.
    Wenn du die Kästchen gruppierst, kannst du anhand des Gruppennamens entscheiden:

    Visual Basic-Quellcode

    1. For Each Kaestchen In ActiveSheet.OleObjects
    2. If Kästchen.Object.GroupName = "MyGroup" Then Kaestchen.Object.Value = False
    3. Next Kaestchen
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --