KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

¿Cómo hacer que solo una casilla de verificación de un grupo pueda estar seleccionada en Excel?

AutoraSiluvia Fecha de modificación

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.

Una captura de pantalla de un grupo de casillas de verificación en Excel donde solo se puede seleccionar una a la vez


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:

Una captura de pantalla que muestra la inserción de casillas de verificación de control ActiveX en Excel

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.

Una captura de pantalla que muestra la opción para insertar un módulo de clase en VBA de Excel

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:

Una captura de pantalla del panel Propiedades en VBA para cambiar el nombre de la clase a ClsChk

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.

Una captura de pantalla de casillas de verificación en Excel donde solo una está habilitada a la vez tras la ejecución del código VBA

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:

Las mejores herramientas de productividad para Office

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose 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 Marcar duplicados   |  Eliminar filas en blanco   |  Combinar Columnas o celdas sin perder datos   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir 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   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

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.

ExcelWordOutlookTabsPowerPoint
  • 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