Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen

Formularsteuerelement OptionButton per VBA

Betrifft: Formularsteuerelement OptionButton per VBA von: Arhur
Geschrieben am: 11.05.2016 10:41:48

Hallo zusammen.

Vor mir liegen ein paar Codezeilen, die nicht wirklich laufen möchten ...

Ich habe eine Gruppe OptionButtons aus den Formularsteuerelementen (nicht ActiveX) gruppiert und würde gerne die Zuweisung den verlinkten Zelle per Code unterstützt bekommen. Leider gelingt es mir nicht. Es folgt die Fehlermeldung 438 - "Objekt unterstützt diese Eigenschaft oder Methode nicht".

Ihr seht das Problem sicherlich gleich :).

Sub optbut()
    Dim loShape As Shape
    Dim loShpGrp As Object
    Dim llShpType As Long

    Dim poSel As Object
    
    'On Error Resume Next
    Set poSel = ActiveSheet.Shapes("Gruppierung 1")
    llShpType = poSel.Type
    
    If (llShpType = msoGroup) Then
        
        Set loShpGrp = poSel.GroupItems
        
        For Each loShape In loShpGrp
            Select Case loShape.FormControlType
            Case xlOptionButton, xlCheckBox
                With ActiveSheet.Shapes(loShape.Name)
                    .Value = xlOff
                    .LinkedCell = "A3"
                End With
            End Select
        Next

        Set loShpGrp = Nothing
    End If

End Sub

Zur Vereinfachung ist hier eine Beispieldatei angehängt.
https://www.herber.de/bbs/user/105501.xlsm

Gruß, Arthur.

  

Betrifft: AW: Formularsteuerelement OptionButton per VBA von: Luschi
Geschrieben am: 11.05.2016 11:42:15

Hallo Aethur,

so funktioniert es bei mir:

    If (llShpType = msoGroup) Then
        Set loShpGrp = poSel.GroupItems
        For Each loShape In loShpGrp
            Select Case loShape.FormControlType
            Case xlOptionButton, xlCheckBox
                 ActiveSheet.Shapes(loShape.Name).Select
                 With Selection
                    .Value = xlOff
                    .LinkedCell = "$A$3"
                End With
            End Select
        Next

        Set loShpGrp = Nothing
    End If
    ActiveSheet.Range("A3").Select
Gruß von Luschi
aus klein-Paris

PS: Gerade bei Shapes-Objekten auf Tabellenblättern ist es erforderlich bestimmte Grundeinstellungen über die Selection zu erledigen.



  

Betrifft: Grcias von: Arhur
Geschrieben am: 11.05.2016 12:03:28

Hallo Luschi.

... so einfach ist das manchmal.
Danke schön.

Gruß, Arthur.


 

Beiträge aus den Excel-Beispielen zum Thema "Formularsteuerelement OptionButton per VBA"