¿Cómo permitir que solo una casilla de verificación en un grupo esté seleccionada en Excel?
Como se muestra en la siguiente captura de pantalla, para un grupo de casillas de verificación listadas en la fila 2, al seleccionar o marcar una casilla, todas las demás se desactivan automáticamente. ¿Cómo lograrlo? El código VBA en este artículo puede ayudarte.
Solo permite que una casilla de verificación sea seleccionada con código VBA
Solo permite que una casilla de verificación sea seleccionada con código VBA
Puedes ejecutar el siguiente código VBA para seleccionar solo una casilla de verificación en un grupo de casillas a la vez. Por favor, sigue los siguientes pasos.
1. Primero, inserta las casillas de verificación según sea necesario. Aquí, debes insertar las casillas de control ActiveX como se muestra en la siguiente captura de pantalla:
2. Luego presiona simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
3. En la ventana abierta de Microsoft Visual Basic para Aplicaciones, haz clic en Insertar > Módulo de Clase.
4. Cambia el nombre de la clase a ClsChk en el cuadro (Nombre) del panel Propiedades, y luego copia y pega el siguiente código VBA en la correspondiente ventana de Código. Ver captura de pantalla:
Código VBA 1: 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. Ahora haz clic en Insertar > Módulo, luego copia y pega el siguiente código VBA en la ventana del Módulo.
Código VBA 2: 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 la tecla F5 para ejecutar el código.
A partir de ahora, al marcar cualquiera de las casillas de verificación en la hoja de cálculo, todas las demás casillas de verificación se desactivarán automáticamente, y puedes desmarcarla para activar todas las casillas nuevamente.
Nota: Si se agrega una nueva casilla de verificación al grupo de casillas, por favor vuelve a ejecutar el código VBA para activar todas las casillas nuevamente. Eliminar una casilla de verificación del grupo también requiere volver a ejecutar el código.
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 la 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
Potencia tus habilidades en 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 lleva la interfaz de pestañas a 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 nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!