¿Cómo permitir que solo una casilla de verificación en un grupo esté seleccionada en Excel?
En algunas aplicaciones de Excel, es posible que necesites permitir a los usuarios seleccionar solo una opción de un grupo de casillas de verificación, imitando el comportamiento de los botones de radio. Por ejemplo, como se muestra en la captura de pantalla a continuación, cuando marcas una casilla en la fila 2, todas las demás casillas del grupo se desactivan instantáneamente, asegurando que solo sea posible una única selección en cualquier momento. Esta restricción es útil en formularios de encuestas, listas de selección de respuesta única o paneles donde deseas evitar respuestas múltiples. Lograr esta funcionalidad directamente en Excel requiere técnicas específicas, como usar código VBA. Este artículo proporciona soluciones prácticas para habilitar un efecto de "selección única" con casillas de verificación en Excel, incluyendo instrucciones paso a paso y consideraciones importantes para su uso real.
Permitir que solo una casilla de verificación pueda ser seleccionada con código VBA
Puedes usar el siguiente enfoque de VBA para asegurarte de que solo una casilla de verificación en un grupo pueda seleccionarse a la vez. Esta solución es especialmente adecuada cuando necesitas una experiencia fluida y automática, ideal para plantillas complejas o cuando es importante controlar la lógica de activación/desactivación.
1. Comienza insertando las casillas de verificación donde deseas que se aplique la selección única. Para esta solución, debes usar casillas de verificación de Controles ActiveX, ya que las casillas de verificación de Formulario no admiten directamente el mecanismo de activación/desactivación. Para insertar casillas ActiveX, ve a la pestaña Desarrollador > Insertar > Controles ActiveX > Casilla de verificación. Organiza todas las casillas dentro de tu grupo deseado como se muestra a continuación:
2. Presiona Alt + F11 juntos para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
3. En la ventana del editor, haz clic en Insertar > Módulo de Clase. Este paso crea un nuevo módulo de clase, que es necesario para manejar eventos para múltiples casillas de verificación. Usar un módulo de clase permite responder al clic individual de cada casilla de verificación, sin importar cuántas casillas haya presentes.
4. Encuentra el nuevo módulo de clase en el panel Propiedades (generalmente a la izquierda), haz clic en él y, en el cuadro (Nombre), cámbialo del valor predeterminado (como Class1) a ClsChk. Luego, copia y pega el siguiente código en la ventana de código de este módulo de clase. Ver la captura de pantalla como referencia:
Código VBA1: Seleccionar solo una casilla de verificación a la vez
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. A continuación, haz clic en Insertar > Módulo para agregar un módulo de código estándar. Copia y pega el siguiente código en la ventana del módulo. Este código inicializará y "vinculará" todas tus casillas de verificación con el controlador de eventos definido anteriormente:
Código VBA2: Seleccionar solo una casilla de verificación a la vez
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub
6. Presiona F5 para ejecutar el código, lo que activa la lógica de selección única para tu grupo de casillas de verificación. Prueba el comportamiento marcando cualquiera de las casillas; todas las demás casillas deberían desmarcarse y deshabilitarse inmediatamente. Desmarcar tu selección actual volverá a habilitar todas las casillas para que puedas hacer una selección diferente.
Nota: Si añades o eliminas cualquier casilla de verificación de tu grupo, necesitarás volver a ejecutar la inicialización de VBA. Esto se debe a que los controladores de eventos se actualizan cada vez que se ejecuta el código, asegurando que cualquier cambio en el grupo de controles sea reconocido correctamente por tu VBA.
Las ventajas de este método incluyen su total automatización: los usuarios no pueden seleccionar accidentalmente múltiples opciones. Sin embargo, solo funciona con controles ActiveX, que pueden estar limitados por la versión de Excel, y es necesario habilitar las macros. Además, distribuir libros con controles ActiveX o macros a otros usuarios puede requerir permisos de seguridad adicionales.
Artículos relacionados:
- ¿Cómo filtrar datos basados en una casilla de verificación en Excel?
- ¿Cómo ocultar una casilla de verificación cuando una fila está oculta en Excel?
- ¿Cómo resaltar una celda o fila con una casilla de verificación en Excel?
- ¿Cómo crear una lista desplegable con múltiples casillas de verificación en Excel?
- ¿Cómo insertar una marca de fecha en una celda si se marca una casilla de verificación en Excel?
Las mejores herramientas de productividad para Office
Mejora tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab incorpora la interfaz de pestañas en Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!
Todos los complementos de Kutools. Un solo instalador
El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.





- Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
- Mejor juntos: productividad optimizada en todas las aplicaciones de Office
- Prueba completa de30 días: sin registro ni tarjeta de crédito
- La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos