Como creo una Barra de Avance con porcentaje en Excel 2010 al ejecutar una macro...?

Tengo una macro que hace muchos procesos de formulas, ¿cómo hago para que me muestre un avance con porcentaje desde que comienza hasta que termine el 100%?

Mi archivo se llama VentasDiarias.xlsm

1 respuesta

Respuesta
1

Si quieres enviame una copia de tu archivo a [email protected]

Ya te envíe un archivo que encontré de un barra de progreso que me gusto, pero no se donde poner mi código.

Lo que ocurre, es que como tal no existe un "lugar" donde poner el código.

Las barras de progreso, como la que me envías, se incrementa en un tanto por ciento cada vez que llamas al método oProgress. Increase

Pero antes de llamar a ese método debes inicializarlo e indicarle cuantos ciclos tendrá tu aplicación. Esto lo haces en oProgress. Initialize endRow, style, windowCaption

Donde endRow es el numero de ciclos que tendrá tu macro.

Pero ahora viene la parte de tu análisis, ¿cuántos ciclos tiene tu macro?, ¿Estos ciclos son constantes?, ¿O son variables? ¿En qué parte de la macro debo incrementar el progressbar?. ¿O son varias macros en secuencia?. En fin, no te puedo dar una respuesta, y decirte en esta parte va el código, la pregunta es al contrario, en que parte de mi código coloco mi barra.

Si quieres enviame tu código, y con gusto te ayudo a colocar tu barra de progreso.


Hola Víctor buen día, ya te envíe el archivo con el código, muchas gracias por el apoyo

Pues aunque no pueda correr tu macro. Me queda claro que son varios procesos seguidos. Asi que básicamente puedes hacer los siguiente:

Pseudocódigo:

Primero identifica, en cuantos bloques vas a dividir tu código, o sea, cuantos subprocesos tienes, digamos 4

Asignamos un máximo al progressbar, nos sirve 100

Ejecuta tu primero proceso

incrementamos el progressbar en máximo/numero procesos=100/4=25 (25%)

Ejecuta tu Segundo proceso

incrementamos el progressbar en máximo/numero procesos=100/4=25 (50%)

Ejecuta tu Tercer proceso
incrementamos el progressbar en máximo/numero procesos=100/4=25 (75%)

Ejecuta tu Cuarto proceso
incrementamos el progressbar en máximo/numero procesos=100/4=25 (100%)

Muestras un mensaje, donde indique que el proceso finalizo

Los incrementos los puedes modificar, o sea si tienes un proceso que se demore mas le puedes poner digamos 30 y a otro 20 y luego a otro 25 y al final 25. La distribución se la das a tu gusto, pero que sea igual a 100.

El código final seria algo asi:

Public Sub Example()
 Dim oProgress As New frm_lcf_ProgressBar
 Dim style As Integer
 Dim windowCaption As String
 Dim endRow As Long
 Dim i As Long
 style = 2 ' Progress bar style (1 / 2).
 windowCaption = "Actualizando" ' Progress bar window caption.
 endRow = 100 'Maximo porcentaje
 ' Progress bar initialization
 oProgress.Initialize endRow, style, windowCaption
 oProgress.Show 0 ' Shows the progress bar window
 For i = 0 To 100000 'Ejemplo ejecutandose un proceso
 Next
 oProgress.Increase (25) 'Ya que son 4 procesos al 100 lo dividimos en 4
 For i = 0 To 100000000 'Ejemplo ejecutandose otro proceso
 Next
 oProgress.Increase (25) 'Incrementamos de nuevo, iria en 50
 For i = 0 To 100000000 'Ejemplo ejecutandose otro proceso
 Next
 oProgress.Increase (25) 'Incrementamos de nuevo, iria en 75
 For i = 0 To 100000000 'Ejemplo ejecutandose otro proceso
 Next
 oProgress.Increase (25) 'Incrementamos de nuevo, iria en 100
 MsgBox "Proceso finalizado!"
 Unload oProgress ' Unload progress bar window
End Sub

Libro ejemplo

http://sdrv.ms/17IWzR4

Si tienes alguna duda avisame!

.

Buen día, ya ejecute la macro y lo adecue a mi necesidad, tome en cuenta los procesos y lo dividí como me decías, quedo Excelente, muchas gracia por tu apoyo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas