Como desmarcar outra caixa de seleção quando uma caixa de seleção é marcada no Excel?
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.
2. Na janela Microsoft Visual Basic for Applications aberta, cole o seguinte código VBA na janela Planilha (Código).
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:
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
Melhores Ferramentas de Produtividade para Office
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!