Crear barra de progreso para macros

Deseo insertar una barra de progreso a este código mediante UserForm1, pero no se como hacerlo, agradezco mucho la ayuda, ya que a pesar de los videos y intentos no lo he logrado. El código abre tres archivos, uno a la vez, copia, abre una hoja nueva, pega lo copiado, cambia el nombre a las hojas y cierra el libro; esto lo hace tres veces.

Adjunto muestra del código, del primer archivo que modifica, solo cambia el nombre del archivo, el restos del código para los otros dos libros es igual.

1 respuesta

Respuesta
1

Recuperé mi vieja cuenta, te paso el código;

Private Sub UserForm_Activate()
Dim Porcentaje As Double
'1
Porcentaje = 0
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
Call Corte1_1
'2
Call Corte1_2
Porcentaje = 0.111111111111111 * 1
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'3
Call Corte1_3
Porcentaje = 0.111111111111111 * 3
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'4
Call Corte1_4
Porcentaje = 0.111111111111111 * 4
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'5
Call Corte1_5
Porcentaje = 0.111111111111111 * 5
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'6
Call Corte1_6
Porcentaje = 0.111111111111111 * 6
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'7
Call Corte1_7
Porcentaje = 0.111111111111111 * 7
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'8
Call Corte1_8
Porcentaje = 0.111111111111111 * 8
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
'9
Call Corte1_9
Porcentaje = 0.111111111111111 * 9
Me.Caption = Format(Porcentaje, "0%")
Me.Barra.Width = Porcentaje * Me.Frame1.Width
DoEvents
MsgBox "Ha terminado el proceso de Generación de Semáforo", vbOKOnly, "Monitor de Embarques"
Sheets("Primer Corte").Visible = False
End
End Sub

Cada que se manda a llamar una macro con el 'call' te multiplica el paso 'n' por el producto de dividir 1 sobre los procesos que vas a ejecutar, es decir, si tu macro necesita mucho tiempo en correr, divide tu código en 'x' partes, así que =1/'partes de código'.
Suponiendo que partes tu código en 5, quedaría más o menos así;

Procentaje = 0.2 *5 (si vas en la parte 5).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas