Indicador de progreso en Excel VBA

Hola, me llamo Miguel y durante el dia de hoy os traigo un nuevo artículo.

A continuación veremos un programa en Excel VBA que crea un indicador de progreso. Hemos mantenido el indicador de progreso lo más simple posible, pero parece profesional. Estás listo

El formulario de usuario que vamos a crear se ve así:

Indicador de progreso en Excel VBA

Para crear este formulario de usuario, realice 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 la caja de herramientas no aparece automáticamente, haga clic en Ver, caja de herramientas. Su pantalla debe configurarse de la siguiente manera.

Visualización de la pantalla del formulario de usuario en Excel VBA

Este formulario de usuario solo consta de tres controles. Un control de cuadro y dos controles de etiqueta.

3. Agregue control de fotogramas. Puede hacer esto haciendo clic en Marco en la caja de herramientas. A continuación, puede arrastrar un control de fotograma al formulario de usuario. Necesita cambiar algunas propiedades de este control de marco. Haga clic con el botón derecho en el control del marco y luego haga clic en Propiedades. Vacíe el campo Subtítulo, establezca la altura en 24 y el ancho en 204.

4. Agregue el primer control de etiqueta y colóquelo en el control de marco. Haga clic con el botón derecho en el control de etiqueta y luego haga clic en Propiedades. Cambie el nombre a Bar, BackColor a Highlight, vacíe el campo Subtitle, establezca la altura en 20 y el ancho en 10.

5. Agregue el segundo control de etiqueta y colóquelo sobre el control de marco. Haga clic con el botón derecho en el control de etiqueta y luego haga clic en Propiedades. Cambie el nombre a Texto y cambie el título a "0% completo".

6. Cambie el título del formulario de usuario a Indicador de progreso.

Una vez completado, el resultado debe ser coherente con la imagen del formulario de usuario que se muestra arriba.

7. Coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código para mostrar el formulario de usuario:

Privado Sub CommandButton1_Click ()

UserForm1.Show

Aleta Sub

Si ha revisado los otros ejemplos en este formulario de usuario, sabe que es hora de crear Initialize_Subform. Este Sub funciona automáticamente cada vez que se carga el formulario de usuario. Por lo tanto, cuando utilice el método Show para el formulario de usuario, el código se ejecutará automáticamente. En lugar de Sub UserForm_Initialize, creamos Sub UserForm_Activate. Usando este sub, Excel VBA puede actualizar el formulario de usuario para mostrar el progreso de la macro.

8. Abra el Editor de Visual Basic.

9. En el Explorador de proyectos, haga clic con el botón secundario en UserForm1 y, a continuación, haga clic en Ver código.

10. Elija Formulario de usuario de la lista desplegable de la izquierda. Elija Habilitar en la lista desplegable de la derecha.

11. Agregue la siguiente línea de código:

Privado Sub UserForm_Activate ()

código

Aleta Sub

Explicación: Este sub llama a otro subcódigo llamado que crearemos en un minuto. ¿Confundido? Puede consultar nuestro Subcapítulo Función y para obtener más información sobre los subs. Si tiene prisa, simplemente realice los siguientes pasos y estará bien.

12. Coloque el código secundario en un módulo (en el Editor de Visual Basic, haga clic en Insertar, módulo). Este es solo un ejemplo. Este es el lugar para agregar su propio código cuando desee utilizar este indicador de progreso para su propia macro. El código se ve así.

Sub código ()

Oscuro me Cómo Entero, j Cómo Entero, pctCompl Cómo Único

Sheet1.Cells.Clarify

Para i = 1 Para 100
Para j = 1 Para 1000
Celdas (i, 1) .Valor = j
Entonces j
pctCompl = i
progreso pctCompl
Entonces me

Aleta Sub

Explicación: Primero, inicializamos algunas variables. Luego eliminamos la hoja 1. Usamos un ciclo doble para mostrar los valores de 1 a 1000 en las primeras 100 filas de la hoja de trabajo. Esto mantendrá a Excel VBA ocupado por un tiempo y nos dará la oportunidad de ver el progreso de la macro. La variable pctCompl (abreviatura de percentCompleted) mide el progreso de la macro. Finalmente, llamamos a otro subnombre de progreso y pasamos el valor de la variable pctCompl para actualizar el formulario de usuario. De esta forma, podemos ver el progreso de la macro.

13. Agregue otro subnombre de progreso. El código tiene este aspecto:

Sub progreso (pctCompl Cómo Único)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

Aleta Sub

Explicación: La primera línea de código cambia el título del primer control de etiqueta. La segunda línea de código cambia el ancho del segundo control de etiqueta. Agregue DoEvents para actualizar el formulario de usuario.

14. Salga del Editor de Visual Basic y haga clic en el botón de comando de la hoja de trabajo:

Resultado:

Resultado del indicador de progreso

Nota: para esta macro usamos la variable i para medir el progreso. Por ejemplo, en la fila 11 se completó el 10%. Esto puede ser diferente para su macro. La técnica de pasar el valor de la variable pctCompl al subprogreso para actualizar el formulario de usuario sigue siendo la misma.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página utiliza Cookies. Más info