Para Dante - Barra de progreso

Estimado dante

tengo una macro que se ejecuta en un poco de tiempo y quisiera que una barra de progreso me muestre que sigue trabajando.

quisiera que se muestre una barra de progreso conforme avance la macro. 

inicio = timer

final = timer

Final-inicio= maximo

si fuera posible quisiera que el valor maximo de la progressBar sea el tiempo que tarda la macro en terminar de ejecutarse.

Gracias

1 respuesta

Respuesta
2

Para adaptar la macro de progreso, tengo que revisar la macro, me puedes enviar tu archivo, me explicas cuál es la macro y cómo se ejecuta.

Ah, otra cosa, no puedo decirte cuánto tiempo va a tardarse la macro, eso depende de tu procesador, de la memoria, de cómo está hecha la macro, en fin, son varios factores y no se puede determinar cuánto tiempo va a durar, a menos que tú me digas cuánto tiempo dura, entonces si dura 30 minutos y son las 3 de la tarde te puedo decir que va a terminar a las 3:30 de la tarde, pero no le veo mucho sentido.

Lo que puedo poner, es si va a procesar 100 registros y ya procesó 10 registros entonces lleva un avance del 10%, si ya procesó 50 registros, entonces lleva un avance del 50%, si lleva 90 registros, lleva 90%, y te lo puedo poner de esta forma.

Estimado dante

Te envíe el correo

Gracias

Esta macro va dentro de un formulario

Necesitas un frame, un label dentro del frame y otro label

Private Sub UserForm_Activate()
'Referencia: http://support.microsoft.com/kb/211736/es
'Mod.Por.Dante Amor
    LProgress.Width = 0
    principal
End Sub
Sub principal()
'Por.Dante Amor
    Application.ScreenUpdating = False
    con = 1
    rep = 10
    Label1 = "Procesando ..."
    '
    fin = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To fin
        '***
        '
        'Macro
        '
        '***
        If (con * 100) / fin >= rep Then
            UpdateProgressBar rep
            rep = rep + 10
        End If
        con = con + 1
    Next
    Application.ScreenUpdating = True
    Label1 = "Proceso Terminado"
End Sub
Sub UpdateProgressBar(ava)
'Por.Dante Amor
    UserForm1.Frame1.Caption = Int(ava) & " %"
    LProgress.Width = LProgress.Width + 30
    DoEvents
    Application. Wait Now + TimeValue("00:00:01")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas