Curso Excel VBA y Macros – Cap. 68 – Formularios – ProgressBar | Bucles anidados

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

En este capítulo de nuestro Curso de macros en Excel, veremos el Control ActiveX ProgressBar, el cual nos permitirá ver el progreso de una tarea optimizada con VBA y macros.

Vamos a combinar el uso de este Control con bucles VBA, en específico con el Ciclo For Next. También lo puedes combinar con los ciclo Do, Do Until o For each Next.

Ver video Capítulo 68 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

ProgressBar para medir el avance de una tarea en Excel

En este ejemplo asignaremos una matriz de 100 filas y 100 columnas, las cuales servirán servirán para ingresar valores aleatorios en todas las hojas que hay en el archivo de ejemplo.

El Control ProgressBar cuenta con la propiedad Value para asginar el avance y los valores irán desde 0 hasta 1, o 100%. Al recorrer todas las hojas del archivo el avance irá aumentando hasta llegar al 100%, por lo que es importante que el ciclo For Next recorra la cantidad definida de hojas, y el valor de las hojas recorridas, será divido entre el total de hojas, hasta llegar al total de ellas.

Figura 1. Control ProgressBar en Excel.

Código VBA del Formulario

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh

'CONTROL ACTIVEX
Private Sub CommandButton1_Click()
Dim f As Integer, c As Integer, h As Integer, Valor As Integer
Dim Filas As Integer, Columnas As Integer
Dim Avance As Single, Cuenta As Integer

Filas = 100
Columnas = 100

Me.ProgressBar1.Min = 0
Me.ProgressBar1.Max = 1
Cuenta = ThisWorkbook.Sheets.Count

For h = 2 To Cuenta
    For f = 1 To Filas
        For c = 1 To Columnas
            ThisWorkbook.Sheets(h).Cells(f, c).Value = VBA.Int(VBA.Rnd * 100)
        Next c
    Next f
    
    Valor = Valor + 1
    Avance = Valor / (Cuenta - 1)
    Me.Label1.Caption = VBA.Round(Avance * 100, 0) & "% completado"
    Me.ProgressBar1.Value = Avance

VBA.DoEvents
Next h

End Sub

Descarga el archivo de ejemplo

068 – Forrmularios Control Progressbar y bucles anidados – EXCELeINFO.zip

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...