KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como permitir que apenas uma caixa de verificação seja selecionada de cada vez num grupo no Excel?

AutoraSiluvia Data de Modificação

Em algumas aplicações do Excel, poderá ser necessário permitir que os utilizadores selecionem apenas uma opção de um grupo de caixas de verificação — imitando o comportamento dos botões de rádio. Por exemplo, tal como ilustrado na imagem abaixo, ao marcar uma caixa de verificação na linha 2, todas as outras caixas de verificação do grupo são imediatamente desmarcadas, garantindo que apenas uma escolha seja possível em cada momento. Esta restrição revela-se particularmente útil em formulários de inquéritos, listas de seleção de resposta única ou painéis onde pretenda evitar respostas múltiplas. Implementar esta funcionalidade diretamente no Excel exige técnicas específicas, como a utilização de código VBA. Este artigo apresenta soluções práticas para obter um efeito de «seleção única» com caixas de verificação no Excel, incluindo instruções passo a passo e considerações essenciais para utilização em cenários reais.

Uma captura de ecrã de um grupo de caixas de seleção no Excel em que apenas uma pode ser selecionada de cada vez


Permitir que apenas uma caixa de verificação seja selecionada com código VBA

Pode utilizar a seguinte abordagem VBA para garantir que, de cada vez, apenas uma caixa de verificação de um grupo esteja selecionada. Esta solução é especialmente indicada quando precisa de uma experiência automática e contínua — ideal para modelos complexos ou sempre que for essencial controlar com precisão a lógica de ativação e desativação.

1. Comece por inserir as caixas de verificação onde deseja impor a seleção única. Para esta solução, tem de utilizar caixas de verificação do tipo ActiveX, pois as caixas de verificação do tipo Formulário não suportam diretamente o mecanismo de ativação/desativação. Para inserir caixas de verificação ActiveX, aceda ao separador Programador > Inserir > Controlos ActiveX > Caixa de Seleção. Organize todas as caixas de verificação dentro do grupo pretendido, conforme ilustrado abaixo:

Uma captura de ecrã que mostra a inserção de caixas de seleção de controlo ActiveX no Excel

2. Prima em simultâneo Alt + F11 para abrir a janela do Microsoft Visual Basic para Aplicações.

3. Na janela do editor, clique em Inserir > Módulo de Classe. Este passo cria um novo módulo de classe, essencial para gerir eventos de múltiplas caixas de verificação. Ao utilizar um módulo de classe, é possível responder individualmente ao clique em cada caixa, independentemente do número de caixas presentes.

Uma captura de ecrã que mostra a opção para inserir um Módulo de Classe no VBA do Excel

4. Localize o novo módulo de classe no painel Propriedades (normalmente à esquerda), clique nele e, na caixa Nome, altere o nome do valor predefinido (por exemplo, Classe1) para ClsChk. Em seguida, copie e cole o seguinte código na janela de código deste módulo de classe. Consulte a imagem de referência:

Uma captura de ecrã do painel Propriedades no VBA para mudar o nome da classe para ClsChk

Código VBA 1: Selecionar apenas uma caixa de verificação de cada 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. De 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. Este código irá inicializar e «ligar» todas as suas caixas de verificação ao manipulador de eventos definido anteriormente:

Código VBA 2: Selecionar apenas uma caixa de verificação de cada 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. Prima F5 para executar o código, ativando assim a lógica de seleção única no seu grupo de caixas de verificação. Teste o comportamento marcando qualquer uma das caixas: todas as outras serão imediatamente desmarcadas e desativadas. Ao desmarcar a sua seleção atual, todas as caixas de verificação voltam a ficar ativas, permitindo-lhe fazer uma nova escolha.

Uma captura de ecrã de caixas de seleção no Excel em que apenas uma está ativada de cada vez após a execução do código VBA

Nota: Se adicionar ou remover quaisquer caixas de verificação do seu grupo, terá de executar novamente a inicialização do VBA. Isto acontece porque os manipuladores de eventos são atualizados sempre que o código é executado, garantindo que quaisquer alterações ao grupo de controlos sejam corretamente reconhecidas pelo seu VBA.

As vantagens deste método incluem a sua total automatização — os utilizadores não conseguem acidentalmente selecionar várias opções. No entanto, funciona apenas com controlos ActiveX, cuja disponibilidade pode variar consoante a versão do Excel, e exige que as macros estejam ativadas. Além disso, partilhar livros que contenham controlos ActiveX ou macros com outros utilizadores poderá exigir permissões de segurança adicionais.


Artigos relacionados:

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...


Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil

  • Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
  • Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!

Todos os suplementos Kutools — num único instalador.

Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.

ExcelWordOutlookTabsPowerPoint
  • Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Um instalador, uma licença— configuração em minutos (pronto para MSI)
  • Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
  • Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
  • Melhor relação qualidade-preço— poupe face à compra individual dos suplementos