Skip to main content

Como desmarcar outra caixa de seleção quando uma caixa de seleção é marcada no Excel?

Author: Siluvia Last Modified: 2025-06-04

Como mostrado no vídeo abaixo, suponha que exista uma lista de compras que você precisa finalizar. Ao verificar a lista, você percebe que os itens marcados em algumas categorias estão acima do orçamento e precisam ser reselecionados. Como a lista é muito longa, agora você precisa de uma maneira mais eficiente de desmarcar automaticamente a caixa de seleção originalmente marcada quando uma nova caixa de seleção for marcada em uma categoria. Este tutorial demonstra o método passo a passo para ajudá-lo a realizar isso.

Desmarque outra caixa de seleção quando uma nova caixa de seleção for marcada com código VBA


Desmarque outra caixa de seleção quando uma nova caixa de seleção for marcada com código VBA

Como mostrado na demonstração acima, dez caixas de seleção nomeadas Checkbox1, Checkbox2, Checkbox3, ..., Checkbox10 são divididas em 3 grupos e localizadas em diferentes categorias na tabela.

Neste exemplo, Checkbox1, 2, 3 estão em um grupo, Checkbox4, 5, 6, 7 estão em outro grupo, e Checkbox8, 9, 10 estão no mesmo grupo. Em cada grupo, apenas uma caixa de seleção pode ser marcada por vez. Quando uma caixa de seleção é marcada, outra caixa de seleção é desmarcada automaticamente.

Agora vamos ver como aplicar o seguinte código VBA para resolver esse problema.

1. Clique com o botão direito do mouse na guia da planilha e clique em Visualizar Código no menu de contexto.

A screenshot showing the option View Code in the context menu of a sheet tab in Excel

2. Na janela Microsoft Visual Basic for Applications aberta, cole o seguinte código VBA na janela Planilha (Código).

A screenshot of the VBA code editor in Excel with example VBA code for managing checkboxes

Código VBA: Desmarque outra caixa de seleção quando uma nova caixa de seleção for marcada

Dim xBol As Boolean
'Updated by Extendoffice 20220816
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 x As Long
Dim xAllArr
Dim xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
'In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes.
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

Observações:

1) No código, Checkbox1, Checkbox2, ..., Checkbox10 são os nomes das caixas de seleção;
2) Na linha a seguir, as caixas de seleção entre aspas pertencem ao mesmo grupo, e cada caixa de seleção é separada por uma vírgula. Para adicionar mais grupos de caixas de seleção, coloque as caixas de seleção entre novas aspas.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) As caixas de seleção são caixas de seleção Controle ActiveX.

3. Pressione as teclas Alt + Q para fechar a janela Microsoft Visual Basic for Applications.

Então, quando você marcar uma nova caixa de seleção em um grupo, a caixa de seleção originalmente marcada será desmarcada automaticamente, conforme mostrado no gif abaixo.


Demonstração: Desmarque outra caixa de seleção quando uma caixa de seleção for marcada no Excel

Kutools para Excel: Mais de 300 ferramentas práticas na ponta dos seus dedos! Aproveite recursos de IA gratuitos permanentemente! Baixe agora!

Melhores Ferramentas de Produtividade para Office

🤖 Assistente AI do KUTOOLS: Revolucione a 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
Recursos Populares: Encontrar, Destacar ou Marcar Duplicatas | Excluir Linhas em Branco | Combinar Colunas ou Endereço sem Perder Dados | Arredondar...
Super PROC: PROC com Múltiplos Critérios | PROC com Múltiplos Valores | Procura em várias planilhas | Correspondência Fuzzy...
Lista Suspensa Avançada: Crie rapidamente uma Lista Suspensa | Lista Suspensa Dependente | Lista Suspensa com Múltipla Seleção...
Gerenciador de Colunas: Adicionar um Número Específico de Colunas | Mover Colunas | Alternar Estado de Visibilidade das Colunas Ocultas | Comparar Intervalo & 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 | Selecionador de Data | Mesclar Dados | Criptografar/Descriptografar Células | Enviar Email por Lista | Super Filtro | Filtro Especial (filtrar negrito/itálico/tachado...)...
Top15 Conjuntos de Ferramentas:12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ...) | Mais de50 Tipos de Gráficos (Gráfico de Gantt, ...) | Mais de40 Fórmulas Práticas (Calcular a idade com base na data de nascimento, ...) |19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem a partir do 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

Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...


O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho

  • Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
  • Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!