Foros del Web » Soporte técnico » Ofimática »

Excel: Progress Bar

Estas en el tema de Excel: Progress Bar en el foro de Ofimática en Foros del Web. Hola colegas, estube leyendo hacerca de los progress bar, el cual logre que me funcionara a medias, a ver si logro hacerlo andar.. tengo un ...
  #1 (permalink)  
Antiguo 26/05/2007, 18:00
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Excel: Progress Bar

Hola colegas, estube leyendo hacerca de los progress bar, el cual logre que me funcionara a medias, a ver si logro hacerlo andar..

tengo un macro que se ejecuta normalmente, y quiero agregarle un progress bar. Lo que hice fue crear un formulario y agregarle esta barra, luego al inicio y al final del macro le agregue:
userform1.show
todo el codigo del macro
userform1.hide
Luego con este codigo que encontre el la web, pude hacer que la barra funcionara:

Private Sub UserForm_Activate()
Dim x As Long

' Generamos un ciclo For
For x = ProgressBar1.Min To ProgressBar1.Max
' Mostramos la veriable x (el value) en Label1
Label1 = x
' Usamos DoEvents para poder visualizar el conteo en el Label
DoEvents

' Asignamos en la propiedad Value del control ProgressBar _
el valor de x para ir incrementando la barra de progreso
ProgressBar1.Value = x
Next x

End Sub


Private Sub Form_Load()
'Le asignamos las propiedades para el mínimo, máximo valor del Progress bar
With ProgressBar1

.Max = 5000
.Min = 0
.Value = 0

End With
End Sub


El problema que me ocurre es que si bien el progress bar se completa normalmente, la macro se detiene al hacer cargarse el formulario, y solo continua una vez que lo cierro. Actua igual que si se abriera un msgbox. que se puede hacer?
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #2 (permalink)  
Antiguo 28/05/2007, 14:20
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Re: Excel: Progress Bar

Primero que nada, no olvides que con lo que tienes, al "correr" la barra de progreso, en realidad NO estara "corriendo" tu macro, pero, te dara una bonita presentacion . PAra que REALMENTE vaya cargando la barra, mientras actua tu macro, pues el bucle de la barra deberia actuar en la misma rutina de tu macro, pero, bueno, en realidad eso es mayormente en transferencia de datos, en importaciones de datos etc.

Basandonos en lo que tu tienes, lo que podrias hacer es que alterminar de "correr" la barra, se cierre el userform:

Esto:
.....
Next x

End Sub
.....


Por
......
Next x
Unload USerform1
End Sub


Y aqui:

userform1.show
todo el codigo del macro
userform1.hide

Por
userform1.show
todo el codigo del macro

Abrahan
  #3 (permalink)  
Antiguo 04/07/2007, 21:01
 
Fecha de Ingreso: junio-2007
Mensajes: 20
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Excel: Progress Bar

Hola colegas,
Este tema del ProgressBar está bastante interesante.

Vengo trabajando en adaptar el script que se tiene aquí, pero se me ha complicado cuando intento relacionarlo con el Userform. Lo cierto es que hasta el momento, vengo trabajando ya un tiempo en programación VBA, pero aun no he trabajado con Userforms.

Existe la posibilidad de poner a disposición en la red un archivo Excel como ejemplo en el cual funcione el ProgressBar.
Sería una buena manera de aprender el funcionamiento del script y lógica.

Saludos,

Miguel
  #4 (permalink)  
Antiguo 05/07/2007, 01:06
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Re: Excel: Progress Bar

Hola Miguel, aca tenes un ejemplo muy bueno:

http://support.microsoft.com/kb/211736/es

;)
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #5 (permalink)  
Antiguo 05/07/2007, 14:06
 
Fecha de Ingreso: junio-2007
Mensajes: 20
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Excel: Progress Bar

Hola Pablus,
Efectivamente el ejemplo es muy bueno.
Ya hice las pruebas y resultó exitoso.
Funciona bien!!!!!

Saludos y gracias por tu colaboración.

Miguel
  #6 (permalink)  
Antiguo 03/09/2007, 08:46
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Re: Excel: Progress Bar

Hola Abraham, volvi a retomar este tema que me quedo dando vueltas. Como mi codigo hace mas un recorrido lineal en vez de un bucle, se me ocurrio que a medida que avanza el codigo ir agregando:

userform1.progressbar.value = 10
...
userform1.progressbar.value = 20
...
etc

Funciono bien, pero me ocurrio un pequeño problema. En las opciones del formulario tuve que ponerlo como ShowModal = false, para que permita correr el codigo, detras del formulario, sino hasta que no cerraba el formulario no corria.

Esto le quita el foco al formulario, y se ubica en las celdas que estan debajo que se van modificando. El inconveniente ocurre aca ya que al cambir las celdas y las hojas debajo de este, a veces el formulario se ve mal, se pone en blanco, o no muestra al informacion, como cuando la maquina se tildara, se te ocurre alguna idea de como solucionar esto? no se si esta mal encarado desde el inicio o si se puede hacer alguna otra cosa, saludos!
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #7 (permalink)  
Antiguo 03/09/2007, 10:29
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Re: Excel: Progress Bar

PAra que no se "vea" lo que hace la macro en tu hoja de excel:

Application.ScreenUpdating = FAlse (Al inicio)

Application.ScreenUpdating = True (Al final)

Para que el userform no quede en blanco:


userform1.progressbar.value = 10
DoEvents
...
userform1.progressbar.value = 20
DoEvents
...
etc

Abraham
  #8 (permalink)  
Antiguo 04/09/2007, 15:35
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Re: Excel: Progress Bar

Mil gracias Abrahamvj, lo probare!
__________________
-- Nunca te des por vencido, aún vencido -- Web
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:24.