/ / Bucle a través de controles en Excel VBA

Recorrer los controles en Excel VBA

Con solo unas pocas líneas de código, podemos fácilmente pasar por los controles en una Excel VBA Userform. El formulario de usuario que vamos a crear se ve de la siguiente manera:

Recorrer los controles en Excel VBA

Para crear este formulario de usuario, ejecute los siguientes pasos.

1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no está visible, haga clic en Ver, Explorador de proyectos.

2. Haga clic en Insertar, formulario de usuario. Si el Cuadro de herramientas no aparece automáticamente, haga clic en Ver, Cuadro de herramientas. Su pantalla debe configurarse como se muestra abajo.

Configuración de pantalla de formulario de usuario en Excel VBA

3. Agregue la etiqueta, las casillas de verificación (primero en la parte superior, la segunda debajo de la primera, y así sucesivamente) y el botón de comando. Una vez que se haya completado, el resultado debe ser consistente con la imagen del formulario de usuario que se mostró anteriormente. Por ejemplo, cree un control de casilla de verificación haciendo clic en CheckBox en el Cuadro de herramientas. A continuación, puede arrastrar una casilla de verificación en el formulario de usuario.

4. Puede cambiar los nombres y las leyendas de los controles. Los nombres se utilizan en el código de Excel VBA. Los subtítulos son aquellos que aparecen en tu pantalla. Es una buena práctica cambiar los nombres de los controles, pero no es necesario aquí porque solo tenemos algunos controles en este ejemplo. Para cambiar el título del formulario de usuario, la etiqueta, las casillas de verificación y el botón de comando, haga clic en Ver, Ventana de propiedades y haga clic en cada control.

5. Para mostrar el formulario de usuario, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ahora hemos creado la primera parte del formulario de usuario. Aunque ya se ve bien, nada sucederá aún cuando hagamos clic en el botón Borrar.

6. Abra el Editor de Visual Basic.

7. En el Explorador de proyectos, haga doble clic en UserForm1.

8. Haga doble clic en el botón Borrar.

9. Agregue las siguientes líneas de código:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Explicación: Excel VBA recorre todos los controles en el formulario de usuario. La función TypeName se usa para filtrar los controles de la casilla de verificación. Si se trata de un control de casilla de verificación, Excel VBA desmarca la casilla de verificación. contr es elegido al azar aquí, puede utilizar cualquier nombre. Recuerde referirse a este nombre en el resto de su código.

Resultado al hacer clic en el botón Borrar:

Resultado de bucle a través de controles

Lea también: