La Web del Programador: Comunidad de Programadores
 
    Pregunta:  51494 - MANEJADOR DE ARCHIVOS CON UN PROGRESS BAR
Autor:  Leonardo D'cesares
Buen dia a todos(as) los que se encuentran en este foro, necesito su colaboracion para generar respuesta a esta intriga y mejorar el codigo que tengo elaborado.

La intriga es crear un manejador de archivo para crear un empaquetado de un sistema pero manejo muchos archivo externos que son tanto de audio como peliculas de flash que hacen muy pesado el sistema si los incluyo en el empaquetador de visual basic, por eso decide crear un formulario independiente que copie todos estos archivos y luego llame al setup creado por visual basic.

El problema radica es que no hay nada que me determine cuanto ha transcurido este proceso, lo creado hasta el momento es este codigo que le muestro a continuación pero no se ve nada en el Progress Bar. les pido su colaboración y ayuda. Y agradezco de antemano a todos por dicha colaboración.

------------------------------------------------------------------------------------------------------------------------
Dim cont As Integer

Private Sub Form_Activate()
On Error Resume Next
Set fs = CreateObject("Scripting.FileSystemObject")
For i = 1 To cont
Progreso.Value = i
Set a = fs.CopyFile("*.swf", App.Path + "\prueba")
i = i + 1
Next i
End Sub

Private Sub Form_Load()
on Error Resume Next
Set fs = CreateObject("Scripting.FileSystemObject")
File1 = App.Path ' esto es un filelistbox
File1.Pattern = "*.swf"
cont = File1.ListCount
Progreso.Min = 1
Progreso.Max = cont
Progreso.Value = 1
MkDir app.path + "\prueba"
End Sub

  Respuesta:  Gabriel Memmel
Hola Leonardo, creo que lo que le esta faltando a tu codigo es una interrupción para que el programa pueda realizar otras tareas como actualizar el estado del ProgressBar, para hacer esto basta con agregar una linea con el comando

DoEvents

luego de asignar el valor a Progreso.value y asi podrá actualizar el progreso correspondiente.