Barra de progreso de VBA - Crear gráfico de barras de progreso usando código VBA

Barra de progreso de Excel VBA en Excel

La barra de progreso es algo que nos muestra cuánto de un proceso se ha realizado o terminado cuando ejecutamos grandes conjuntos de códigos que requieren más tiempo para ejecutarse, usamos la barra de progreso en VBA para mostrarle al usuario el estado del proceso, o si tenemos varios procesos ejecutándose en un solo código, usamos la barra de progreso para mostrar qué proceso ha progresado cuánto.

Una barra de progreso muestra el porcentaje de tareas completadas cuando la tarea real se ejecuta detrás de la pantalla con un conjunto de instrucciones dadas por el código.

Cuando el código VBA tarda una cantidad considerable de tiempo en ejecutarse, es la ansiedad del usuario saber qué tan pronto puede terminar. De forma predeterminada, debemos esperar el tiempo completo para completar la tarea, pero al insertar la barra de progreso, conocemos el progreso del código VBA.

En casi todos los programas informáticos, vemos un gráfico de barras de progreso que muestra el progreso de la tarea que estamos realizando, como en la imagen de abajo.

En Excel, podemos crear la barra de progreso utilizando la codificación VBA. Si alguna vez se ha preguntado cómo podemos crear una barra de progreso, este es el artículo hecho a su medida.

Crea tu propia barra de progreso

Para crear una barra de progreso, debemos seguir varios pasos. A continuación, se muestran los pasos a seguir al crear el gráfico de barras de progreso.

Paso 1: Cree o inserte un nuevo formulario de usuario.

Tan pronto como haga clic en la opción anterior, verá un formulario de usuario como el siguiente.

Paso 2: Presione la tecla F4 para ver la ventana de propiedades de VBA.

En esta pestaña de propiedades, necesitamos cambiar las propiedades del formulario de usuario de VBA que hemos insertado.

Paso 3: Cambie el nombre del formulario de usuario a UFProgressBar.

Ahora podemos referir este formulario de usuario con el nombre "UFProgressBar" mientras codificamos.

Paso 4: cambie la propiedad Mostrar modelo del formulario de usuario a FALSO.

Paso 5: Ahora, ajuste la alineación del usuario para que se ajuste a sus necesidades. He cambiado la altura del formulario de usuario a 120 y el ancho a 300.

Paso 6: cambie el título del formulario de usuario a "Barra de estado de progreso".

Paso 7: Ahora, desde la caja de herramientas del formulario de usuario, inserte LABEL en el formulario de usuario en la parte superior.

Con esta etiqueta, necesitamos establecer las propiedades de la etiqueta. Elimine el título, déjelo en blanco y ajuste el ancho de la etiqueta.

Paso 8: cambie el nombre de la etiqueta a "ProgessLabel".

Paso 9: Ahora, desde la caja de herramientas, toma el marco y dibuja justo debajo de la etiqueta que hemos insertado en los pasos anteriores. Asegúrese de que el marco esté en el centro del formulario de usuario.

Paso 10: Ahora, necesitamos cambiar algunas de las propiedades del Marco para que se vea exactamente igual que el formulario de usuario que hemos insertado.

Propiedad 1: cambie el nombre del marco a "ProgressFrame".

Propiedad 2: Elimine el título y déjelo en blanco.

Property 3: Change the Special Effect of the frame to 6 - fmSpecialEffectBump.

After all these changes, our user form should look like this.

Step 11: Now insert one more label. This time insert the label just inside the frame we have inserted.

While inserting the label, make sure the left side of the label exactly fits the frame we have inserted, as shown in the above image.

Step 12: After inserting the label change the properties of the label as follows.

Property 1: Change the name of the label to “MainProgressLabel.”

Property 2: Delete the caption.

Property 3: Change the background colour as per your wish.

Ok, ahora hemos terminado con el proceso de configuración de la barra de progreso, y en este momento, se ve así.

Ahora necesitamos ingresar códigos para que esto funcione perfectamente.

Paso 13: Para hacer el marco, agregue la siguiente macro en Excel.

Código:

Sub InitUFProgressBarBar () With UFProgressBar .Bar.Width = 0 .Text.Caption = "0%" .Mostrar vbModeless End With
Nota: “UFProgressBar” es el nombre que se le da al formulario de usuario, y “Bar” es el nombre que se le da al marco que hemos creado, y “Texto” es el nombre que se le da a la etiqueta dentro del marco.

Ahora, si ejecuta este código manualmente o mediante la tecla F5, deberíamos ver la barra de progreso así.

Paso 14: Ahora, necesitamos crear una macro para realizar nuestra tarea. Estoy realizando la tarea de insertar números de serie del 1 al 5000. Junto con este código, también necesitamos configurar el gráfico de barras de progreso, el. El código w es el código hecho a medida para usted.

Código:

Sub ProgressBar_Chart () Dim i As Long Dim CurrentUFProgressBar As Double Dim UFProgressBarPercentage As Double Dim BarWidth As Long i = 1 Llamar InitUFProgressBarBar Do while i <= 5500 Cells (i, 1) .Value = i CurrentUFProgressBar = i / 2500 BarWaridth = UFProgressBar. Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round (CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% Complete" DoEvents i = i + 1 Loop Unload End SubProgressBar

Articulos interesantes...