none
Como controlar optionbutton pelo VBA RRS feed

  • Pergunta

  • Olá,

    Possuo uma aba de uma planilha com dois OptionButton(Botão de Opção 12 e Botão de Opção 13).

    Quero controlar pelo VBA quando uma opção deve estar marcada.

    Tentei este codigo mas nao funcionou:

    OptionButton13.Value = True

    quarta-feira, 30 de dezembro de 2015 16:20

Respostas

  • Sub Main()
        Dim opt As OptionButton
        
        Set opt = ThisWorkbook.Worksheets("Planilha1").Shapes("Botão de opção 1").OLEFormat.Object
        
        Select Case opt.Value
            Case -4146: MsgBox "Botão de opção está desmarcado.", vbInformation
            Case 1: MsgBox "Botão de opção está marcado.", vbInformation
            Case 2: MsgBox "Botão de opção tem marcação mista.", vbInformation
        End Select
    End Sub


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Marcado como Resposta OtavioBCR quarta-feira, 13 de janeiro de 2016 11:59
    segunda-feira, 11 de janeiro de 2016 12:31
    Moderador

Todas as Respostas

  • No Office, em especial no Access, os OptionButton são parte integrante dos Grupos de Opção, cada OptionButton recebe um valor dentro do grupo, normalmente começando de 1.

    Para saber qual a opção escolhida, faça a verificação do evento AfterUpdate do grupo de opções.

    Private Sub groOpcoes_AfterUpdate()
        If Me.groOpcoes.Value = 1 Then
            MsgBox "Você clicou na opção 1"
        ElseIf Me.groOpcoes.Value = 2 Then
            MsgBox "Você clicou na opção 2"
        End If
    End Sub
    Espero ter ajudado


    Sergio Ivanenko


    • Sugerido como Resposta André Santo quarta-feira, 30 de dezembro de 2015 18:04
    • Editado Ivanenko quarta-feira, 30 de dezembro de 2015 18:07
    quarta-feira, 30 de dezembro de 2015 17:58
  • Qual sua dúvida, Otávio? O código que você postou é capaz de alterar o valor do botção de opção.

    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    domingo, 3 de janeiro de 2016 20:03
    Moderador
  • O codigo que eu postei não está funcionando.

    O OptionButton que preciso alterar,é um botão de controle de formulário e nao um ActiveX.

    Teria algum jeito de fazer via codigo?

    segunda-feira, 11 de janeiro de 2016 12:08
  • Como consigo saber qual o grupo de opções?
    segunda-feira, 11 de janeiro de 2016 12:08
  • Sub Main()
        Dim opt As OptionButton
        
        Set opt = ThisWorkbook.Worksheets("Planilha1").Shapes("Botão de opção 1").OLEFormat.Object
        
        Select Case opt.Value
            Case -4146: MsgBox "Botão de opção está desmarcado.", vbInformation
            Case 1: MsgBox "Botão de opção está marcado.", vbInformation
            Case 2: MsgBox "Botão de opção tem marcação mista.", vbInformation
        End Select
    End Sub


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Marcado como Resposta OtavioBCR quarta-feira, 13 de janeiro de 2016 11:59
    segunda-feira, 11 de janeiro de 2016 12:31
    Moderador
  • Obrigado pela atenção.

    Poderia dizer como ficaria para marcar um botao de opçao por esse codigo?

    Por exemplo: Preciso ativar o botao de opção 12 , para depois copiar os dados da planilha.

    terça-feira, 12 de janeiro de 2016 17:56
  • No meu código, altere Botão de opção 1 pelo nome do seu botão de opção e Planilha1 pelo nome da sua planilha.

    Há alguma dificuldade adicional que eu não esteja vfendo?


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    terça-feira, 12 de janeiro de 2016 18:02
    Moderador
  • Fiz a troca,mas o codigo não está funcionando.

    Pelo que entendi do seu codigo,ele emite uma mensagem dependendo do estado do optionButton,correto?

    Tenho dois optionbutton's,um de Real R$ e outro de U$ Dolar. Preciso marcar um deles via codigo para poder pegar os dados da moeda correta.

    quarta-feira, 13 de janeiro de 2016 11:38
  • Agora consegui.

    Substitui o select case por opt.Value = True

    Obrigado.

    quarta-feira, 13 de janeiro de 2016 11:58