DW Faisalabad New Version

DW Faisalabad New Version
Please Jump to New Version

Thursday 13 July 2017

StatusBar

The StatusBar property of the Application object in Excel VBA can be used to indicate the progress of a lengthy macro. This way, you can let the user know that a macro is still running.

Situation:

The macro we are going to create fills Range("A1:E20") with random numbers.



Add the following code lines to the command button:

1. First, we declare three variables of type Integer, named i, j and pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer
2. Add a Double Loop.

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

    Next j
Next i
Add the following code lines (at 3, 4 and 5) to the loop.

3. Use the RandBetween function to import a random number between 20 and 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
4. Initialize the variable pctCompl. The second code line writes the value of the variable pctCompl and some descriptive text in the status bar.

pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"
Example: For i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% has been completed.

5. We use the Wait method of the Application object to simulate a lengthy macro.

Application.Wait Now + TimeValue("00:00:01")
6. To restore the default status bar text, set the StatusBar property to False (outside the loop).

Application.StatusBar = False
Result when you click the command button on the sheet:



Note: You can interrupt a macro at any time by pressing Esc or Ctrl + Break. For a more visual approach, see our Progress Indicator program..