/ / Excel VBA StatusBar propiedad

Excel VBA StatusBar propiedad

los Propiedad StatusBar del objeto de aplicación en Excel VBA se puede utilizar para indicar el progreso de una macro larga. De esta manera, puedes hacerle saber al usuario que una macro todavía se está ejecutando.

Situación:

La macro que vamos a crear rellena el rango ("A1: E20") con números aleatorios.

Ejemplo de propiedad de Excel VBA StatusBar

Agregue las siguientes líneas de código al botón de comando:

1. Primero, declaramos tres variables de tipo Integer, llamadas i, j y pctCompl.

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

2. Añadir un doble bucle.

For i = 1 To 20
    For j = 1 To 5

    Next j
Next i

Agregue las siguientes líneas de código (en 3, 4 y 5) al bucle.

3. Use la función RandBetween para importar un número aleatorio entre 20 y 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)

4. Inicialice la variable pctCompl. La segunda línea de código escribe el valor de la variable pctCompl y algunos textos descriptivos en la barra de estado.

pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"

Ejemplo: Para i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% se ha completado.

5. Usamos el método Wait del objeto Application para simular una macro larga.

Application.Wait Now + TimeValue("00:00:01")

6. Para restaurar el texto predeterminado de la barra de estado, establezca la propiedad StatusBar en False (fuera del bucle).

Application.StatusBar = False

Resultado al hacer clic en el botón de comando en la hoja:

Excel VBA StatusBar propiedad Resultado

Nota: Puede interrumpir una macro en cualquier momento presionando Esc o Ctrl + Break. Para un enfoque más visual, vea nuestro programa Indicador de progreso.

Lea también: