¿Como se hace una barra de progreso?

05/10/2005 - 18:57 por Manolito | Informe spam
Pues eso, agradeceria que alguien me enseñara a hacer un codigo para una
barra de progreso.
yo tengo uno pero el codigo se detiene hasta que no acaba de cargar la barra
y yo lo que quiero es que mientras hace el proceso aparezca la barra y se
vaya caragando y cuando acabe el proceso se cierre el formulario que la
contiene.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
06/10/2005 - 05:09 | Informe spam
hola, Manolito !

Mostrar la cita
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/downloa...ontrol.zip
2) http://www.erlandsendata.no/downloa...amples.zip
otro ejemplo de XL-Logic en: http://www.xl-logic.com/xl_files/vb...e_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.
#2 Manolito
06/10/2005 - 10:22 | Informe spam
gracias por tu respuesta, pero me he dado cuenta con los ejemplos que la
barra de proceso solo sirve para procesos o bucle repetitivos, pero 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 de proceso el codigo que me extrae los
datos se me detiene al abrir el formulario con la barra. y no se como hacer
para que el codigo que extrae los datos continue.
Escribo el codigo parte del codigo para que sea mas facil de entender
'1º Al abrir el libro
Private Sub Workbook_Open()
FoInicio.Show ' Muestro un formulario con tres botones
End Sub
'2º Al pulsar cualquiera de ellos muestra un formulario(FoSeleccion) donde
el usuario escoge una serie de opciones que sirven de filtro.
'3º Al presionar el boton de aceptar en FoSeleccion.
Private Sub CmdAceptar_Click()
Application.Cursor = xlWait 'Pongo el relojito
Application.DisplayStatusBar = True
Application.StatusBar = "Se está realizando la carga de datos,
sea tan amable de esperar..."

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" escribió en el mensaje
news:
Mostrar la cita
barra
Mostrar la cita
caragando [...]
Mostrar la cita
un modulo 'de clase']...
Mostrar la cita
enlaces:
Mostrar la cita
http://www.xl-logic.com/xl_files/vb...e_wait.zip
Mostrar la cita
http://www.cpearson.com/excel/Progress.htm
Mostrar la cita
Usuario
Mostrar la cita
http://support.microsoft.com/kb/211736/
Mostrar la cita
#3 Héctor Miguel
06/10/2005 - 20:33 | Informe spam
hola, Manolito !

Mostrar la cita
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.
#4 Manolito
07/10/2005 - 07:13 | Informe spam
Muchas gracias por tu ayuda, lo he solucionado abriendo el formulario del
progressbar en modal=false de esta manera el codigo no se detiene.
La transferencia de datos tarda unos 10 seg. y la hago con recordsets ADO.



"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
sirve para procesos o bucle repetitivos
Mostrar la cita
colocando en una hoja y luego la imprimo.
Mostrar la cita
datos se me detiene al abrir el formulario con la barra [...]
Mostrar la cita
inserta en la hoja actual.
Mostrar la cita
instruccion 'userformX.show'
Mostrar la cita
es que se detiene... VUELVES a mostrar el formulario] :-(
Mostrar la cita
al codigo en que momento 'avanza' el indicador
Mostrar la cita
te permita saber que ha habido cambios/avance/movimiento/...
Mostrar la cita
sus tiempos o registros]...
Mostrar la cita
recordsets... no lo veo como una opcion... 'adecuada' :-(
Mostrar la cita
nuevo... con base en que???]
Mostrar la cita
los recordsets ???
Mostrar la cita
Ads by Google
Search Busqueda sugerida