Como crear una barra de progreso en Excel en 6 pasos

Hoy me han preguntado como crear una barra de progreso en Excel y me ha hecho ilusión que me lo preguntaran… hace tiempo estuve buscando una solución para ello, en mis comienzos de Excel y me ha hecho recordarlo.

Una barra de progreso en Excel es muy útil cuando hay una macro que tarda un poquito en ejecutarse y puede marear al usuario… con esta barra de progreso garantizamos que el usuario se está quieto hasta que termine de ejecutarse toda la macro.

Paso 1

Abre el editor de Visual Basic (puedes hacerlo presionando Alt + F11) y añade un formulario como se muestra en la siguiente imagen.

Si no sabes muy bien cómo hacerlo puedes echarle un vistazo a este tutorial: Crear un formulario desde 0

Paso 2

Añade tres etiquetas (labels) como en la siguiente imagen:

  • La etiqueta de arriba (Label 1) nos servirá para marcar el % de avance. A esta etiqueta le cambiamos el nombre (Name) y le llamamos “Progreso”.
  • La etiqueta grande y con borde (se lo hemos añadido para que se vea bien) nos servirá para delimitar el alcance de la barra de progreso

  • La que hemos coloreado en azul es la etiqueta 3 y será nuestra barra de progreso. A esta etiqueta le cambiamos el nombre y le llamaremos “Barra”.

Al cambiar los nombres podremos identificarlas más fácilmente después a la hora de escribir el código.

Paso 3

Ahora deberemos empezar a añadir el código en el formulario. Para ello hacemos click con el botón derecho en cualquier lado del formulario y seleccionamos la opción de “Ver código”.

Paso 4

Añadimos la primera macro que nos lanzará la siguiente cuando lancemos el formulario. Recuerda que para ver el formulario debes hacer click en el botón de Play que encontrarás en la parte superior de la ventana del Editor de Visual Basic.

Private Sub UserForm_Activate()

'Cuando se lanza el Userform se llama a la macro Mi_Codigo
Call Mi_Codigo

End Sub

Paso 5

Añadimos la macro que queremos que ejecute la barra de progreso en Excel, es decir, el motivo por el que estamos haciendo esto. Recuerda que si la macro la tienes en un módulo diferente del UserForm1 tendrás que pegar la macro del Paso 6 justo después.

Sub Mi_Codigo()

Dim i As Integer, j As Integer, pctCompl As Single

For i = 1 To 100
    For j = 1 To 1000
        Cells(i, 1).Value = j
    Next j
    pctCompl = i
    Call Aumenta_progreso(pctCompl)
Next i

End Sub

Paso 6

Ponemos la macro que actualiza la barra de progreso. Esta macro, como decíamos previamente, tienen que estar a continuación de la anterior y no puede estar en un módulo diferente.

Sub Aumenta_progreso(pctCompl As Single)

'Actualizo el UserForm
UserForm1.Progreso.Caption = pctCompl & "% Completedo"
UserForm1.barra.Width = pctCompl * 2

'me permite actualizar el Userform y que se refleje
DoEvents

End Sub

Muy importante, la clave de esta macro es poner la función DoEvents que nos permitirá refrescar el formulario cuando se muestra en pantalla porque Excel, por ser el tipo de programación que es, no puede hacer varias cosas a la vez… sólo una, es así de simple el programita. 🙂

Descargar barra de progreso en Excel

Estoy seguro de que te has leído el contenido de arriba abajo pero te gustará más tener una versión descargable de la barra de progreso en Excel. Si es así te la dejo aquí, simplemente haznos un “Me gusta” en la página de Facebook o comparte en Twitter o en Google+.

Pero para que sepas lo que te vas a descargar te dejo un pantallazo de como queda:

barra de progreso en Excel

[sociallocker]

Crear una barra de progreso en Excel

[/sociallocker]

 

(Visited 57.474 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies