Actualizacion de un TextFiel dentro de un While

Mi problema es el siguiente...
Utilizo un textbox como informante del progreso de una tarea en % (1%, 2%, 3%..., 100%)
CAmbio el porcentaje con un simple TextBox1.Text = porcentaje_actual
EL problema esta en que dentro del ciclo while en el que se esta ejecutando la tarea y luego de esta se actualiza el porcentaje, En realidad no lo esta haciendo...
Solo muestra 0% al comienzo y 100% al final!
¿Existe alguna forma de actualizar dentro del while mi modesto informante de porcentaje de progreso de mi tarea?
De antemano muchas gracias!

1 Respuesta

Respuesta
1
Dependerá mucho de qué haga tu macro cíclica y qué tiempo le insuma.
Usualmente, en procesos relativamente complejos conviene colocar al inicio del bucle una instrucción del tipo:
Application.Screenupdating = False
Para que no se vea qué está haciendo la macro.
Entonces, al final de cada ciclo colocas una instrucción que muestre tu textbox habilitando, primero la opción de pantalla y luego el textbox actualizado:
Application.Screenupdating = True
TextBox1.Text = porcentaje_actual
Si el ciclo fuese muy corto, lo que haría caso constante este refresco de pantalla, te convendría colocar -fuera del While- una instrucción OnTime
Como la siguiente:
Application. OnTime Now + TimeValue("00:00:15"), "PorcAvance"
Esto hará que luego de 15 segundos se ejecute la macro PorcAvance.
Tal macro debería ser:
Sub PorcAvanc()
TextBox1.Text = porcentaje_actual
Application.OnTime Now + TimeValue("00:00:15"), "PorcAvance"
End Sub
Es decir que muestra el cuadro con el porcentaje de avance y vuelve a instruirse para se mostrada en 15 segundos.
Obviamente puedes variar ese tiempo, según tu necesidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas