¿Cómo hacer que solo una casilla de verificación de un grupo pueda estar seleccionada en Excel?
En algunas aplicaciones de Excel, es posible que necesite que los usuarios seleccionen únicamente una opción dentro de un grupo de casillas de verificación, replicando el comportamiento de los botones de opción. Por ejemplo, como se muestra en la siguiente captura de pantalla, al marcar una casilla de verificación en la fila 2, todas las demás del mismo grupo se desactivan automáticamente, garantizando que solo haya una selección activa en todo momento. Esta restricción resulta especialmente útil en formularios de encuestas, listas con respuestas de opción única o paneles donde se desea evitar selecciones múltiples. Lograr esta funcionalidad directamente en Excel requiere técnicas específicas, como el uso de código VBA. Este artículo ofrece soluciones prácticas para implementar un efecto de «selección única» con casillas de verificación en Excel, incluyendo instrucciones paso a paso y consideraciones clave para su aplicación en entornos reales.

Permitir que solo una casilla de verificación esté seleccionada mediante código VBA
Puede utilizar el siguiente enfoque de VBA para garantizar que, en un grupo, solo una casilla de verificación esté seleccionada a la vez. Esta solución resulta especialmente adecuada cuando necesita una experiencia automática e integrada, ideal para plantillas complejas o cuando es fundamental gestionar la lógica de activación y desactivación.
1. Comience insertando casillas de verificación en los lugares donde desee aplicar la selección única. Para esta solución, debe utilizar casillas de verificación de controles ActiveX, ya que las casillas de controles de formulario no admiten directamente el mecanismo de activación y desactivación. Para insertar casillas de verificación ActiveX, vaya a la pestaña Desarrollador > Insertar > Controles ActiveX > Casilla de verificación. Organice todas las casillas dentro del grupo deseado como se muestra a continuación:

2. Pulse Alt + F11 simultáneamente para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
3. En la ventana del editor, haga clic en Insertar > Módulo de clase. Este paso crea un nuevo módulo de clase, necesario para gestionar los eventos de varias casillas de verificación. Al usar un módulo de clase, podrá responder individualmente al clic en cada casilla, independientemente de cuántas haya.

4. Localice el nuevo módulo de clase en el panel de Propiedades (normalmente a la izquierda), haga clic en él y, en el cuadro Nombre, cámbiele el nombre desde el valor predeterminado (por ejemplo, Clase1) a ClsChk. A continuación, copie y pegue el siguiente código en la ventana de código de este módulo de clase. Consulte la captura de pantalla como referencia:

Código VBA 1: Permitir seleccionar solo una casilla de verificación cada 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, haga clic en Insertar > Módulo para añadir un módulo de código estándar. Copie y pegue el siguiente código en la ventana del módulo. Este código inicializará y «vinculará» todas sus casillas de verificación al controlador de eventos definido anteriormente:
Código VBA 2: Permitir seleccionar solo una casilla de verificación cada 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. Pulse F5 para ejecutar el código, lo que activará la lógica de selección única en su grupo de casillas de verificación. Pruebe el comportamiento marcando cualquiera de las casillas: todas las demás se desmarcarán e inhabilitarán inmediatamente. Al desmarcar su selección actual, todas las casillas volverán a habilitarse, permitiéndole elegir una opción diferente.

Nota: Si añade o elimina casillas de verificación de su grupo, deberá volver a ejecutar la inicialización del código VBA. Esto se debe a que los controladores de eventos se actualizan cada vez que se ejecuta el código, garantizando que cualquier cambio en el grupo de controles sea correctamente reconocido por su VBA.
Las ventajas de este método incluyen su automatización total: los usuarios no pueden seleccionar accidentalmente varias opciones. Sin embargo, solo funciona con controles ActiveX, cuya disponibilidad puede depender de la versión de Excel, y requiere que las macros estén habilitadas. Además, compartir libros que incluyan controles ActiveX o macros con otros usuarios podría implicar la necesidad de permisos de seguridad adicionales.
Artículos relacionados:
- ¿Cómo filtrar datos en Excel según el estado de una casilla de verificación?
- ¿Cómo ocultar una casilla de verificación al ocultar su fila en Excel?
- ¿Cómo resaltar una celda o fila mediante una casilla de verificación en Excel?
- ¿Cómo crear una lista desplegable con varias casillas de verificación en Excel?
- ¿Cómo insertar una marca de fecha en una celda al marcar una casilla de verificación 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