Ir para conteúdo
Fórum Script Brasil
  • 0

Como trabalhar com Controls


Betocadilhe

Pergunta

Eu criei um pequeno UserForm de teste com apenas dois label´s, três optionbutton´s e um comandbutton. Os optionbutton´s não estão dentro de um frame e não fazem parte de um GroupName. Eu quero gerar uma mensagem ao clicar no botão de comando informando qual dos optionbutton´s está com sua propriedade value = true, ou seja, aquele que estiver selecionado.

Pois bem, me passaram aqui no fórum tempos atrás a seguinte instrução que eu coloquei no evento click do botão de comando:

Dim ctrl As Control

For Each ctrl In UserForm1.Controls

If TypeOf ctrl Is OptionButton Then

If ctrl.Value = True Then

MsgBox "bla, bla, bla...."

End If

End If

Next ctrl

Testei esta instrução tanto no Excel 2003 como no 2007 e simplesmente não funciona! Quando eu clico não aparece mensagem nenhuma. Fazendo a inspeção da variável eu observo que a variável ctrl é igual a verdadeiro quando chega na linha "If TypeOf ctrl Is OptionButton Then", ou seja, a instrução TypeOf não reconhece a variável ctrl como uma variável control do tipo OptionButton.

Eu preciso identificar apenas, dentro de um UserForm, os controles OptionButton´s e quando um deles for selecionado, uma determinada instrução será executada. Quero uma instrução sem precisar usar a propriedade GroupName.

Alguém poderia me ajudar?

Luiz Roberto

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Assim, não atenderia:

Private Sub CommandButton1_Click()
If Me.OptionButton1.Value = True Then
   MsgBox "OptionButton1 selecionado"
ElseIf Me.OptionButton2.Value = True Then
   MsgBox "OptionButton2 selecionado"
End If
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Luiz,

Esta rotina que você postou está quase certa. O correto é a rotina abaixo:

Dim ctrl As Control

For Each ctrl In UserForm1.Controls

If TypeName(ctrl) = "OptionButton" Then

If ctrl.Value = True Then

MsgBox "bla, bla, bla...."

End If

End If

Next ctrl

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...