Table of Contents

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.

Excel VBA StatusBar Property Example

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:

Excel VBA StatusBar Property Result

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.

Leave A Comment

Excel meets AI – Boost your productivity like never before!

At Formulas HQ, we’ve harnessed the brilliance of AI to turbocharge your Spreadsheet mastery. Say goodbye to the days of grappling with complex formulas, VBA code, and scripts. We’re here to make your work smarter, not harder.

Related Articles

The Latest on Formulas HQ Blog