Barra de progreso a conjunto de macros

Hola, tengo un conjunto de macros para realizar una serie de tareas en excel y me gustaría añadirle una barra de progreso, he visto algunas en la red pero no se muy bien donde entrar las macros que tengo. Podéis echarme una mano por favor?

Un saludo

1 respuesta

Respuesta
1

Te envío el código que necesitas:

Este ejemplo de barra de progreso se ejecuta en la barra de estado.

Tenes que poner las dos macros en un modulo.

Sub AtualizaBarra(prog)
Dim R As Integer
Dim MT As Double
For R = 1 To 50
MT = Timer
Do
Loop While Timer - MT < 0.01
Application.StatusBar = "Progress: " & R & " de 50: " & _
Format(R / 50, "Percent") & " --- " & "Cumplimiento"
DoEvents
Next R
Application.StatusBar = False
End Sub

Sub colores()
Dim a As Byte
Range("A1:A56").Select
For a = 1 To 56
Selection.Cells(a).Interior.Color = ActiveWorkbook.Colors(a)
AtualizaBarra prog
Next a
End Sub

Con un botón o alt F8 ejecutas la macro colores, mientras se realiza el proceso de la macro conjuntamente se ejecuta la barra de progreso.

Esto lo podes hacer con las demás macros.

Gracias por tu respuesta, entiendo que

AtualizaBarra prog

es lo que debo insertar en mi conjunto de macros, (además de la primera macro AtualizaBarra(prog)), pero algo debo hacer mal porque no me funciona correctamente.

Si lo pongo al principio de la macro solo veo la barra unos segundos al empezar a trabajar las macros y enseguida se quita aunque a la macro le quede por trabajar un par de minutos o así.

Y si lo pongo al final solo se ve la barra un par de segundos pero cuando ya ha acabado de trabajar la macro.

Un saludo

Te comento que probé la macro y funciona bien, lo Probé con Exc 2003 y 2007.

La barra de progreso finaliza conjuntamente cuando termina de ejecutarse los 56 colores.

Lo que tenes que hacer es poner el código en un modulo y ejecutar la macro .

Te paso la macro se ejecuta mas rapido.

Sub AtualizaBarra(prog)
Dim R As Integer
Dim MT As Double
'Por Macro_Leo
For R = 1 To 10
MT = Timer
Do
Loop While Timer - MT < 0.02
Application.StatusBar = "Progress: " & R & " de 200: " & _
Format(R / 20, "Percent") & " --- " & "Cumplimiento"
DoEvents
Next R
Application.StatusBar = False
End Sub

Sub colores()
Dim a As Byte
'Por Macro_Leo
Range("A1:A56").Select
For a = 1 To 56
Selection.Cells(a).Interior.Color = ActiveWorkbook.Colors(a)
AtualizaBarra prog
Next a
End Sub

La macro funciona correctamente conforme tu me la pasas, el problema lo tengo al adaptarla a mis macros, que no se muy bien como hacerlo.

Entiendo que debo de incluir este código en mi modulo:

Sub AtualizaBarra(prog)
Dim R As Integer
Dim MT As Double
'Por Macro_Leo
For R = 1 To 10
MT = Timer
Do
Loop While Timer - MT < 0.02
Application.StatusBar = "Progress: " & R & " de 200: " & _
Format(R / 20, "Percent") & " --- " & "Cumplimiento"
DoEvents
Next R
Application.StatusBar = False
End Sub

Sub miconjuntodemacros()

aquí

va

todo

el

código

de

mis

macros

y

esto

al

final?


AtualizaBarra prog
End Sub

Disculpa mi torpeza. Si me mas un email te mando un ejemplo.

Gracias

mi mail es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas