Progressbar en Excel

Hola expertos, mi problema es el siguiente, tengo una pequeña macro que copia unos archivos de una carpeta a otra, lo que quiero es ver el progreso de la copia de archivos mediante un progressbar, pero no tengo idea como, agradezco mucho al experto que me pueda ayudar.

1 Respuesta

Respuesta
1
EL objeto de la "barra de progreso" no funciona sólo, eres tú quien tienes que ir actualizándolo por programa.
Para ello, antes de empezar a copiar todos los archivos tendrás que saber cuantos vas a copiar y, si quieres, el tamaño total de todos ellos. Con ese valor actualizarías la propiedad "max" de la "barra de progreso", osea, el máximo valor que podrá tener.
A partir de ahí, cuando actualices el valor de la propiedad "value" (o el del objeto directamente) se irá dibujando la barra. Si no lo hiciera, incluye una instrucción "doEvents" justo detrás de la asignación de valor al objeto.
Hola, primero que todo gracias por responder tan pronto, segundo, si te entiendo la secuencia de que toa hacer pero podrías colocarme un ejemplo, porque no tengo idea como hacer para saber el tamaño total de todos los archivos, eso me ayudaría bastante, muchas gracias por tu ayuda.
Bueno ya conseguí obtener el peso de los archivos, pero no se como colocar el las instrucciones para que la progressbar funcione, me podrías ayudar, mira este es mi código:
Dim tam As Integer
Dim carpeta As New FileSystemObject
ruta = "C:\Documents and Settings\Camilo\Escritorio\baba"
dest = "T:\COMCEL\"
Set fldr = carpeta.GetFolder(ruta)
tam = fldr.Size
With ProgressBar1
.Max = tam
.Min = 0
.Value = 0
End With
A ver si me explico bien.
Lo que haría es:
1) Leer los nombres de los ficheros que voy a copiar
2) Sumar el tamaño de todos ellos (con un bucle)
3) Con otro bucle, copiar de 1 en 1 los ficheros e ir actualizando la barra.
Nunca he usado el 'FileSystemObject', por lo que no puedo ponerte el código exacto.
Pruébalo y si no lo consigues me estudio ese objeto y preparamos el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas