Skip to main content

Kutools para Office — Uma Suíte. Cinco Ferramentas. Aumente sua Produtividade.

Como permitir que apenas uma caixa de seleção em um grupo seja selecionada no Excel?

Author Siluvia Last modified

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.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


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:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

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.

A screenshot showing the option to insert a Class Module in Excel VBA

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:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

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.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

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:

Melhores Ferramentas de Produtividade para Office

🤖 Kutools AI Aide: Revolucione a análise de dados com: Execução Inteligente   |  Gerar Código  |  Criar Fórmulas Personalizadas  |  Analisar Dados e Gerar Gráficos  |  Chamar Funções Aprimoradas
Recursos Populares: Localizar, Destacar ou Marcar Duplicatas   |  Excluir Linhas em Branco   |  Consolidar Colunas ou Células sem Perder Dados   |   Arredondar...
Super PROC: Procura por múltiplos critérios    Procura por múltiplos valores  |   Procura em várias planilhas   |   Correspondência Fuzzy...
Lista Suspensa Avançada: Crie rapidamente Lista suspensa  |  Lista suspensa dependente  |  Lista suspensa com múltipla seleção ...
Gerenciador de Colunas: Adicionar número específico de colunas  | Mover Colunas  | Alternar status de visibilidade de Colunas ocultas |  Comparar Intervalos & Colunas...
Recursos em Destaque: Grade de foco   |  Visualização de Design  |  Barra de fórmulas aprimorada    Gerenciador de Pasta de trabalho & Planilha   |  Biblioteca de AutoTexto (Auto Text)   |  Selecionador de Data   |  Mesclar Dados   |  Criptografar/Descriptografar Células    Enviar Email por Lista   |  Super Filtro   |   Filtro Especial (filtrar negrito/itálico/tachado...) ...
Os 15 Principais Conjuntos de Ferramentas: 12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ...)  | 50+ Tipos de Gráficos (Gráfico de Gantt, ...)  | 40+ Fórmulas Práticas (Calcular a idade com base na data de nascimento, ...)  | 19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem pelo Caminho, ...)  | 12 Ferramentas de Conversão (Converter em Palavras, Conversão de Moeda, ...)  | 7 Ferramentas de Mesclar & Dividir (Mesclar Linhas Avançado, Dividir Células, ...) | ...e muito mais
Use o Kutools no idioma de sua preferência – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 idiomas!

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.

Excel Word Outlook Tabs PowerPoint
  • 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