¿Cómo desmarcar automáticamente otra casilla de verificación al marcar una en Excel?
En muchos escenarios prácticos, como gestionar una extensa lista de compras en Excel, es posible que necesite asegurar que solo se pueda seleccionar una opción dentro de cada categoría o grupo específico. Por ejemplo, si ciertas categorías superan el presupuesto establecido, podría tener que ajustar su selección para que únicamente un artículo permanezca marcado por grupo. Gestionar manualmente las casillas de verificación en listas largas resulta ineficiente y propenso a errores, especialmente a medida que crece el número de categorías. Para agilizar este proceso y minimizar equivocaciones, puede configurar Excel de modo que, al marcar una nueva casilla dentro de un grupo, se desmarque automáticamente la anterior, garantizando así una única selección por categoría en todo momento. Este artículo le ofrece una guía paso a paso para lograrlo, haciendo su flujo de trabajo más eficiente y fiable.
➤ Desmarcar otra casilla de verificación al marcar una nueva mediante código VBA
Desmarcar otra casilla de verificación al marcar una nueva mediante código VBA
Para ilustrar el proceso, imagine una situación como la del vídeo anterior: dispone de diez casillas de verificación denominadas CheckBox1 hasta CheckBox10, organizadas en tres grupos que representan distintas categorías de compra.
✅ Estructura de grupos:
- Grupo 1: CheckBox1, CheckBox2, CheckBox3
- Grupo 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Grupo 3: CheckBox8, CheckBox9, CheckBox10
Dentro de cada grupo, solo debe estar seleccionada una casilla de verificación. Al marcar una nueva, las demás del mismo grupo se desmarcan automáticamente, de forma similar al comportamiento de Botón de Opción, pero utilizando casillas de verificación.
🧩 Pasos para aplicar la solución VBA:
- Abra el Editor de VBA: Haga clic con el botón derecho en la pestaña de la hoja donde están ubicadas las casillas de verificación y seleccione Ver código.
- Pegue el siguiente códigoen la ventana de código de la hoja de cálculo:
- Cierre el Editor de VBA (Alt + Q) y vuelva a Excel para probar las casillas de verificación.
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:
- Asegúrese de que las propiedades Nombre de su casilla de verificación (no las etiquetas) coincidan exactamente con los nombres del código.
- Los agrupamientos se definen en la línea del array:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10") - Esta macro VBA solo funciona con casillas de verificación de controles ActiveX, no con controles de formulario.
- Debe habilitar las macros para que esta automatización funcione correctamente.
📺 Demostración:
🔍 Consejos para solucionar problemas:
- Asegúrese de que no haya nombres duplicados en las casillas de verificación.
- Asegúrese de que todas las casillas de verificación sean controles ActiveX.
- Cada procedimiento de casilla de verificación debe llamar correctamente a
SetCheckBoxes. - Los escenarios entre hojas requieren adaptación mediante módulos de clase o un control centralizado.
💡 Solución alternativa: Puede utilizar botones de opción de controles de formulario para lograr un comportamiento integrado de selección única. No obstante, si busca diseños más avanzados y un mayor control lógico, la combinación de VBA con casillas de verificación le ofrece una flexibilidad superior.
✨ Consejo: Herramientas como Kutools para Excel ofrecen gestión de casillas de verificación mediante una interfaz gráfica, lo que facilita su configuración sin necesidad de programar.
Demostración: Desmarcar otra casilla de verificación al marcar una en Excel
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos