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

Como desmarcar automaticamente outra caixa de verificação ao marcar uma no Excel?

AutorSiluvia Data de Modificação

Em muitos cenários práticos — como a gestão de uma longa lista de compras no Excel — pode surgir a necessidade de garantir que apenas uma opção seja selecionada dentro de cada categoria ou grupo. Por exemplo, se determinadas categorias excederem o orçamento definido, poderá ter de reselecionar itens de forma a manter apenas um marcado por grupo. Gerir manualmente caixas de verificação em listas extensas é ineficiente e propenso a erros, sobretudo à medida que o número de categorias aumenta. Para simplificar este processo e minimizar falhas, é possível configurar o Excel de modo a que, ao marcar uma nova caixa de verificação num grupo, a anteriormente selecionada seja automaticamente desmarcada — assegurando sempre uma única seleção por categoria. Este artigo apresenta um guia passo a passo para alcançar esse objetivo, tornando o seu fluxo de trabalho mais eficiente e fiável.


Desmarcar outra caixa de verificação ao marcar uma nova com código VBA

Para ilustrar o processo, imagine uma situação como a apresentada no vídeo acima: tem dez caixas de verificação identificadas como CheckBox1 até CheckBox10, organizadas em três grupos que representam diferentes categorias de compra.

✅ Estrutura dos grupos:

  • Grupo 1: CheckBox1, CheckBox2, CheckBox3
  • Grupo 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
  • Grupo 3: CheckBox8, CheckBox9, CheckBox10

Dentro de cada grupo, apenas uma caixa de verificação pode estar selecionada de cada vez. Ao marcar uma nova caixa, as restantes do mesmo grupo são automaticamente desmarcadas — um comportamento semelhante ao dos botões de rádio, mas utilizando caixas de verificação.

🧩 Passos para aplicar a solução com VBA:

  1. Abra o Editor do VBA: Clique com o botão direito no separador da folha onde as caixas de verificação estão localizadas e selecione Exibir Código.
  2. Menu Ver Código
  3. Cole o seguinte códigona janela de código da folha de cálculo:
  4. Dim xBol As Boolean
    'Updated by Extendoffice
    
    Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
    Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
    Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
    Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
    Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
    Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
    Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
    Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
    Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
    Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
    
    Private Function SetCheckBoxes(mCheckBoxName As String)
        Dim xAllArr, xArrItem
        Dim xI, xJ
        If Not xBol Then Exit Function
        xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
                       "CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
                       "CheckBox8,CheckBox9,CheckBox10")
        For xI = LBound(xAllArr) To UBound(xAllArr)
            If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
                xBol = False
                xArrItem = Split(xAllArr(xI), ",")
                For xJ = LBound(xArrItem) To UBound(xArrItem)
                    If xArrItem(xJ) <> mCheckBoxName Then
                        Me.OLEObjects(xArrItem(xJ)).Object.Value = False
                    End If
                Next
            End If
        Next
        xBol = True
    End Function
    
    Private Sub Worksheet_Activate(): xBol = True: End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub
  5. Feche o Editor do VBA (Alt + Q) e regresse ao Excel para testar as caixas de verificação.

📌 Notas importantes:

  • Certifique-se de que as propriedades Nome das suas caixas de verificação (e não as etiquetas) correspondem exatamente aos nomes no código.
  • Os agrupamentos são definidos na linha do array:
    xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
  • Este VBA funciona apenas com caixas de verificação do tipo Controlo ActiveX e não com Controlos de Formulário.
  • As macros têm de estar ativadas para que esta automação funcione.

📺 Demonstração:

🔍 Dicas de resolução de problemas:

  • Verifique se não há nomes duplicados nas caixas de seleção.
  • Certifique-se de que todas as caixas de verificação são Controlos ActiveX.
  • Cada procedimento de caixa de verificação deve chamar corretamente SetCheckBoxes.
  • Em cenários entre folhas, é necessário adaptar a solução recorrendo a módulos de classe ou a um controlo centralizado.

💡 Solução alternativa: Pode utilizar os Botões de Opção dos Controlos de Formulário para obter automaticamente um comportamento de seleção única. Contudo, para esquemas avançados e controlo lógico personalizado, a combinação de VBA + Caixas de Verificação oferece maior flexibilidade.

✨ Dica: Ferramentas como o Kutools para Excel permitem gerir caixas de verificação através de uma interface gráfica, facilitando a configuração sem necessidade de programação.


Demonstração: Desmarcar outra caixa de verificação ao marcar uma caixa de verificação no Excel

 
Kutools para Excel: Mais de 300 ferramentas práticas ao seu alcance! Aproveite funcionalidades potenciadas por IA para um trabalho mais inteligente e rápido!Descarregar já!

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