La propiedad StatusBar del objeto Aplicación en Excel VBA se puede utilizar para indicar el progreso de un largo macro. De esta manera, se puede dejar que el conocimiento del usuario que una macro sigue funcionando.

Situación:

La macro que vamos a crear rellenos Range ( «A1: E20») con números aleatorios.

Excel VBA StatusBar Property Example

Añadir las siguientes líneas de código en el botón de comando:

  1. En primer lugar, declaramos tres variables de tipo entero, llamado i, j y pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer
  1. Añadir un bucle doble.

For i = 1 To 20

For j = 1 To 5

Next j

Next i

Añadir las siguientes líneas de código (a los 3, 4 y 5) para el bucle.

  1. Uso de la función RANDBETWEEN para importar un número aleatorio entre 20 y 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
  1. Inicializar la variable pctCompl. La segunda línea de código escribe el valor de la variable pctCompl y un texto descriptivo 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.

  1. Utilizamos el método de espera del objeto Application para simular un largo macro.

Application.Wait Now + TimeValue("00:00:01")
  1. Para restaurar el texto barra de estado por defecto, establecer la propiedad StatusBar en False (fuera del bucle).

Application.StatusBar = False

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

Excel VBA StatusBar Property Result

Nota: Usted puede enlace: / VBA ejemplos de la interrupción-a-macro [interrupción una macro] en cualquier momento pulsando la tecla Esc o Ctrl + Break. Para un enfoque más visual, ver nuestra `enlace: Indicador-VBA-ejemplos curso / programa [Indicador de progreso] ‘.