Como permitir que apenas uma caixa de seleção em um grupo seja selecionada no Excel?
Em algumas aplicações do Excel, pode ser necessário permitir que os usuários selecionem apenas uma opção de um grupo de caixas de seleção — imitando o comportamento dos botões de opção. Por exemplo, como mostrado na captura de tela abaixo, quando você marca uma caixa de seleção na linha 2, todas as outras caixas de seleção no grupo são instantaneamente desativadas, garantindo que apenas uma escolha seja possível por vez. Essa restrição é útil em formulários de pesquisa, listas de seleção de resposta única ou dashboards onde você deseja evitar múltiplas respostas. Implementar essa funcionalidade diretamente no Excel requer técnicas específicas, como o uso de código VBA. Este artigo fornece soluções práticas para habilitar o efeito de "seleção única" com caixas de seleção no Excel, incluindo instruções passo a passo e considerações importantes para uso no mundo real.
Permita que apenas uma caixa de seleção seja selecionada com código VBA
Você pode usar a seguinte abordagem VBA para garantir que apenas uma caixa de seleção em um grupo possa ser selecionada por vez. Essa solução é especialmente adequada quando você precisa de uma experiência contínua e automática — ideal para modelos complexos ou quando o controle da lógica de ativar/desativar é importante.
1. Comece inserindo as caixas de seleção onde deseja impor uma seleção única. Para esta solução, você deve usar caixas de seleção de Controle ActiveX, pois as caixas de seleção de Controles de Formulário não suportam o mecanismo de ativação/desativação diretamente. Para inserir caixas de seleção ActiveX, vá para a guia Desenvolvedor > Inserir > Controles ActiveX > Caixa de Seleção. Organize todas as caixas de seleção dentro do seu grupo desejado conforme mostrado abaixo:
2. Pressione Alt + F11 juntos para abrir a janela Microsoft Visual Basic for Applications.
3. Na janela do editor, clique em Inserir > Módulo de Classe. Esta etapa cria um novo módulo de classe, que é necessário para lidar com eventos para várias caixas de seleção. Usar um módulo de classe torna possível responder a cada clique individual nas caixas de seleção, independentemente de quantas caixas de seleção existirem.
4. Encontre o novo módulo de classe no painel Propriedades (geralmente à esquerda), clique nele e, na caixa (Nome), renomeie-o do valor padrão (como Class1) para ClsChk. Em seguida, copie e cole o seguinte código na janela de código deste módulo de classe. Veja a captura de tela como referência:
Código VBA1: Selecione apenas uma caixa de seleção por vez
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. Em seguida, clique em Inserir > Módulo para adicionar um módulo de código padrão. Copie e cole o seguinte código na janela do módulo. Esse código inicializará e "vinculará" todas as suas caixas de seleção ao manipulador de eventos definido acima:
Código VBA2: Selecione apenas uma caixa de seleção por vez
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub
6. Pressione F5 para executar o código, o que ativa a lógica de seleção única para o seu grupo de caixas de seleção. Teste o comportamento marcando qualquer uma das caixas; todas as outras caixas devem se desmarcar e desativar imediatamente. Desmarcar sua seleção atual reativará todas as caixas de seleção para que você possa fazer uma seleção diferente.
Observação: Se você adicionar ou excluir quaisquer caixas de seleção do seu grupo, será necessário executar novamente a inicialização VBA. Isso ocorre porque os manipuladores de eventos são atualizados sempre que o código é executado, garantindo que quaisquer alterações no grupo de controle sejam reconhecidas corretamente pelo seu VBA.
As vantagens deste método incluem sua completa automação — os usuários não podem acidentalmente selecionar múltiplas opções. No entanto, ele só funciona com controles ActiveX, que podem ser limitados pela versão do Excel, e as macros precisam estar habilitadas. Além disso, distribuir pastas de trabalho com controles ActiveX ou macros para outros usuários pode exigir permissões de segurança adicionais.
Artigos relacionados:
- Como filtrar dados com base em uma caixa de seleção no Excel?
- Como ocultar uma caixa de seleção quando a linha está oculta no Excel?
- Como destacar célula ou linha com caixa de seleção no Excel?
- Como criar uma lista suspensa com várias caixas de seleção no Excel?
- Como inserir carimbo de data em uma célula ao marcar uma caixa de seleção no Excel?
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência incomparável. Kutools para Excel oferece mais de300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para acessar o recurso que você mais precisa...
Office Tab traz interface com abas para o Office e facilita muito seu trabalho
- Habilite edição e leitura por abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie múltiplos documentos em novas abas de uma mesma janela, em vez de em novas janelas.
- Aumente sua produtividade em50% e economize centenas de cliques todos os dias!
Todos os complementos Kutools. Um instalador
O pacote Kutools for Office reúne complementos para Excel, Word, Outlook & PowerPoint, além do Office Tab Pro, sendo ideal para equipes que trabalham em vários aplicativos do Office.





- Pacote tudo-em-um — complementos para Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Um instalador, uma licença — configuração em minutos (pronto para MSI)
- Trabalhe melhor em conjunto — produtividade otimizada entre os aplicativos do Office
- Avaliação completa por30 dias — sem registro e sem cartão de crédito
- Melhor custo-benefício — economize comparado à compra individual de add-ins