> ... codigo para una barra de progreso.
> ... tengo uno pero el codigo se detiene hasta que no acaba de cargar la barra
> ... quiero que mientras hace el proceso aparezca la barra y se vaya caragando [...]
si conocer que/como hace el codigo que comentas... -?-
1) podrias 'usar' [p.e.] la de la 'barra de estado' de la aplicacion [por un modulo 'de clase']...
en la pagina de John Walkenbach, puedes descargar un ejemplo en:
http://j-walk.com/ss/excel/files/progressbar.exe
2) o por otro tipo de objetos [formularios], prueba con los siguientes enlaces:
en la pagina de John Walkenbach, descargas un ejemplo en:
http://j-walk.com/ss/excel/files/progind.exe
en la pagina de Ole P. Erlandsen, descargas [dos] ejemplos en
1) http://www.erlandsendata.no/downloads/progressbarcontrol.zip
2) http://www.erlandsendata.no/downloads/progressbarexamples.zip
otro ejemplo de XL-Logic en: http://www.xl-logic.com/xl_files/vba/please_wait.zip
otro mas en la pagina de Chip Pearson: http://www.cpearson.com/excel/Progress.htm
Microsoft KB: XL Como Mostrar un Barra Progreso con un Formulario de Usuario
[basado en la tecnica de John Walkenbach] http://support.microsoft.com/kb/211736/
saludos,
hector.
FoProceso.Show
FoProceso.lbl1 = Application.StatusBar
FoProceso.Repaint
Select Case FoInicio.Tag
Case 0 ' Si presionó el boton 0
call ExtraerDeArticulos
Case 1
call ExtraerDeAlbaran
Case 2
call ExtraerDeFactura
End Select
Unload Me
End Sub
'3º Ponemos en marcha la funcion que extrae los datos de un mdb y los
inserta en la hoja actual.
Public Sub ExtraerDeArticulos()
UserForm1.lbl1 = "Importando los articulos... Por favor espere."
UserForm1.Repaint
UserForm1.Show 'Aqui se me para el codigo
'bla, bla, bla
UserForm1.lbl1 = "Importando los precios... Por favor espere."
UserForm1.Repaint
UserForm1.Show
'bla, bla, bla.
End function
No se que hago mal pero cuando llega a la instruccion Show muestra el
mensaje pero el codigo no continua.
Haber si alguien me ayuda, gracias
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:el3TfNiy...@TK2MSFTNGP10.phx.gbl...
> ... pero me he dado cuenta con los ejemplos que la barra de proceso solo sirve para procesos o bucle repetitivos
> ... mi codigo lo que hace es extraer datos de varios recordsets y los va colocando en una hoja y luego la imprimo.
> Si pongo un formulario con una barra... el codigo que me extrae los datos se me detiene al abrir el formulario con la barra [...]
> ... parte del codigo para que sea mas facil de entender [...]
> ... Ponemos en marcha la funcion que extrae los datos de un mdb y los inserta en la hoja actual.
> Public Sub ExtraerDeArticulos()
> UserForm1.lbl1 = "Importando los articulos... Por favor espere."
> UserForm1.Repaint
> UserForm1.Show 'Aqui se me para el codigo
> 'bla, bla, bla
> UserForm1.lbl1 = "Importando los precios... Por favor espere."
> UserForm1.Repaint
> UserForm1.Show
> 'bla, bla, bla.
> End function [...]
1) cuando muestras/presentas/... un formulario por medio de una instruccion 'userformX.show'
el codigo 'espera' que el usuario le devuelva una respuesta [por eso es que se detiene... VUELVES a mostrar el formulario] :-(
2) como ya lo has visto, 'actualizar' una progressbar requiere 'decirle' al codigo en que momento 'avanza' el indicador
[puede ser por bucles o 'detectando' alguna variable o 'momento' que te permita saber que ha habido cambios/avance/movimiento/...
3) usar una progressbar... sobre una base 'incierta' [en cuanto a 'medir' sus tiempos o registros]...
-> en este preciso caso por llamadas a BBDD y extraccion de recordsets... no lo veo como una opcion... 'adecuada' :-(
-> se tendria que cambiar 'de base' para usar un 'estimado' [aunque de nuevo... con base en que???]
4) a manera de informacion... cuanto tiempo tarda el codigo en rescatar los recordsets ???
[y cual es el codigo que usas para ello] ???
comentas?
saludos,
hector.
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:OokUzRqy...@TK2MSFTNGP14.phx.gbl...