Como fazer um botão ficar habilitado e desabilitado dependendo de um valor de uma célula vinculada (lista de combinação drop-down)

Anônima
2012-02-03T11:27:44+00:00

O "CommandButoon4" não entende a alteração da célula "I5" que é alterada por uma caixa de combinação (Sim, Não) que retorna em uma célula vínculada 1 e 2

Segue código abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("I5").Value = 1 Then

        Shapes("CommandButton4").Visible = True

    End If

    If Range("I5").Value = 2 Then

        Shapes("CommandButton4").Visible = False

    End If

End Sub

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2012-02-03T17:06:47+00:00

Supondo que o Botão e o Checkbox sejam Controles ActiveX  (não Controles de Formulário), isto deve funcionar

Private Sub CheckBox1_Click()

     If CheckBox1.Value = True Then

        MsgBox "ligado"

        ActiveSheet.OLEObjects("CommandButton4").Enabled = True

    Else

        MsgBox "desligado"

        ActiveSheet.OLEObjects("CommandButton4").Enabled = False

    End If

End Sub

Depois deleta as msgbox (Usei só para fazer debug)

M.

Esta resposta foi útil?

0 comentários Sem comentários

6 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2012-02-03T18:31:56+00:00

    Puxa que mistura, o botão (CommandButton) é ActiveX e a caixa de combinação (Drop-down) é controle de formulário

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2012-02-03T18:27:49+00:00

    Se os dois forem controles de formulário, talvez algo assim

    Sub Test()

        MsgBox "Eu sou o Botão4"

    End Sub

    Sub CheckBox1_Click()

        Dim s1 As Shape, s2 As Shape

        Set s1 = ActiveSheet.Shapes("Botão4")

        Set s2 = ActiveSheet.Shapes("CheckBox1")

        s2.Select

        If Selection.Value = xlOn Then

            s1.OnAction = "Test"

        Else

            s1.OnAction = ""

        End If

        Range("A1").Select

    End Sub

    M.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2012-02-03T17:59:22+00:00

    Fabio,

    Os dois são controle de formulário? O Checkbox e o botão?

    M.

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2012-02-03T17:35:46+00:00

    Infelizmente é um controle de formulário, e para trocar dará um enorme trabalho, pois sõa mais de 100 itens, já com códigos, mas valeu!!

    Esta resposta foi útil?

    0 comentários Sem comentários