Como desmarcar automaticamente outra caixa de verificação ao marcar uma no Excel?
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 caixa de verificação com código VBA
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:
- 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.
- Cole o seguinte códigona janela de código da folha de cálculo:
- Feche o Editor do VBA (Alt + Q) e regresse ao Excel para testar as caixas de verificação.
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 📌 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
As Melhores Ferramentas de Produtividade para o Office
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.
- 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