¿Cómo hacer que solo se seleccione una casilla de verificación en un grupo de casillas de verificación en Excel?
Como se muestra en la siguiente captura de pantalla, para un grupo de casillas de verificación que se enumeran en la fila 2, al seleccionar o marcar solo una casilla de verificación, las otras casillas de verificación se desactivarán. ¿Cómo lograrlo? El código VBA de este artículo puede ayudarlo.
Solo haga una casilla de verificación para seleccionarla con el código VBA
Solo haga una casilla de verificación para seleccionarla con el código VBA
Puede ejecutar los siguientes códigos VBA para seleccionar solo una casilla de verificación en un grupo de casillas de verificación por vez. Haz lo siguiente.
1. En primer lugar, inserte las casillas de verificación que necesite. Aquí, debe insertar el Casillas de verificación de control ActiveX como se muestra en la siguiente captura de pantalla:
2. Luego presione otro + Teclas F11 simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.
3. En la apertura Microsoft Visual Basic para aplicaciones ventana, haga clic recuadro > Módulo de clase.
4. Cambie el nombre de la clase a ClsChk en el (Nombre) caja del Propiedades panel, y luego copie y pegue el siguiente código VBA en el correspondiente Código ventana. Ver captura de pantalla:
Código VBA 1: solo seleccione una casilla de verificación por 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 haga clic en recuadro > Módulo, luego copie y pegue el siguiente código VBA en el Módulo ventana.
Código VBA 2: solo seleccione una casilla de verificación por 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. presione el F5 clave para ejecutar el código.
De ahora en adelante, al marcar cualquiera de las casillas de verificación en la hoja de trabajo, las otras casillas de verificación se desactivarán automáticamente y puede desmarcarla para activar todas las casillas de verificación nuevamente.
Note: Si se agrega una nueva casilla de verificación al grupo de casillas de verificación, vuelva a ejecutar el código VBA para activar todas las casillas de verificación nuevamente. Al eliminar la casilla de verificación del grupo de casillas de verificación, también es necesario volver a ejecutar el código.
Rartículos eufóricos:
- ¿Cómo filtrar datos según la casilla de verificación en Excel?
- ¿Cómo ocultar la casilla de verificación cuando la fila está oculta en Excel?
- ¿Cómo resaltar celda o fila con casilla de verificación en Excel?
- ¿Cómo crear una lista desplegable con múltiples casillas de verificación en Excel?
- ¿Cómo insertar el sello de fecha en una celda si se marcó una casilla de verificación en Excel?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite 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 de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!