No Excel, tornar o botão de opção ativo / inativo dependendo do valor da célula

0

Eu quero tornar um botão de opção do Excel ativo / inativo, dependendo do valor de outra célula.

Eu fiz a seguinte tentativa:

Sub test()
If ActiveSheet.Cells(9, 3).Text = 3 Then
    ActiveSheet.OptionButton20_Click.Active = False
Else
    ActiveSheet.OptionButton20_Click.Active = True
End If
End Sub

Na janela macro do VBA, mas recebi a seguinte mensagem de erro:

"Object doesn't support this property or method"

Como posso consertar isso, por favor? (Excel Mac 2011)

Para esclarecer, quando digo "inativo", refiro-me a "acinzentado" - não quero dizer apenas que não foi selecionado.

Por exemplo:

Grupo 1 de botões de opção: Masculino o Feminino o

Grupo 2 de botões de opção: Óculos o Brincos o Barba o

Nesse caso, se "Feminino" estiver selecionado, desejo que "Barba" fique indisponível.

Agora tenho o seguinte texto no meu "Módulo 1":

Sub hide_group_box()
ActiveSheet.GroupBoxes.Visible = False
End Sub

Sub disable_radio()
If ActiveSheet.Cells(3, 3).Text = 3 Then
    ActiveSheet.OptionButton65.Enabled = False
End If
End Sub

A primeira coisa, que esconde as caixas de grupo, funciona bem. A segunda coisa parece não funcionar. Ainda estou errado?

    
por user1551817 13.01.2016 / 21:43

1 resposta

0

apenas acontece que eu estava trabalhando nisso no outro dia e tive o mesmo problema.

Eu tenho três opções, Gostei, Não gostei, Nenhum. Apenas um pode ser selecionado porque são botões de rádio.

O que você quer fazer é definir suas variáveis como tal:


Sub doSelectedTest()

    Dim shapeLikes As Shape
    Dim shapeDislikes As Shape
    Dim shapeNone As Shape


    Set shapeLikes = Worksheets("picks").Shapes("Option Button 6")
    Set shapeDislikes = Worksheets("picks").Shapes("Option Button 7")
    Set shapeNone = Worksheets("picks").Shapes("Option Button 8")

    If shapeLikes.ControlFormat.Value = xlOn Then
        MsgBox "Likes"
    End If
    If shapeDislikes.ControlFormat.Value = xlOn Then
        MsgBox "Dislikes"
    End If
    If shapeNone.ControlFormat.Value = xlOn Then
        MsgBox "NONE"
    End If
End Sub

Então, no seu caso:

Dim myShape As Shape
Set myShape = Worksheets("picks").Shapes("Option Button 65")

If ActiveSheet.Cells(3, 3).Text = 3 Then
    myShape.ControlFormat.Value = xlOff
End If

Ou se o botão 65 for desabilitado neste cenário, então myShape.ControlFormat.Enabled = False ou .Visible = False

    
por 18.01.2016 / 11:16