Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

¿Cómo permitir que solo una casilla de verificación en un grupo esté seleccionada en Excel?

Author Siluvia Last modified

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.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


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:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

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.

A screenshot showing the option to insert a Class Module in Excel VBA

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:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

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.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

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:

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Los15 principales conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) ... y más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

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.

Excel Word Outlook Tabs PowerPoint
  • 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