ProgressBar

This control indicates the progress of an action by displaying a horizontal bar.


microsoft excel docs

Additional Reference



Alternative No Reference

Create a Userform
(Insert > Userform)
Caption: "Progress Indicator"
Resize: Height - 75, Width - 215
(View > Toolbox)


Add a Frame
Remove the Caption "Frame1"
Resize: Height - 24 and Width - 200
Reposition: Top - 24, Left - 6


Add a Label inside the Frame
Change the Name to "lblBar"
Remove the Caption "Label1"
BackColor: Highlight
Resize: Height - 20 Width - 10
Reposition: Top - 1, Left - 2


Add a Label on the Userform
Change the Name to "lblDescription"
Change the Caption to "0% Completed"
Resize: Height - 16, Width - 190
Reposition: Top - 6, Left - 10


Add a UserForm_Activate event
(View > Code) when the Userform is displayed
Change the top left drop-down to "Userform"
Change the right drop-down to "Activate"
Add the following code

Private Sub UserForm_Activate() 
    Call TestProgressBar
End Sub

Insert a code Module
(Insert > Module)
Add the following code

Sub TestProgressBar() 
Dim oUserform As UserForm1
Dim lrow As Long
Dim icount As Integer
Dim itotalcount As Integer
    itotalcount = 0
    For lrow = 1 To 5
        For icount = 1 To 1000
            itotalcount = itotalcount + 1
            Cells(lrow, 1).Value = icount
            Call UpdateProgress(itotalcount / 5000)
        Next icount
    Next lrow
End Sub

Sub UpdateProgress(ByVal sngPercentage As Single)
    UserForm1.lblDescription.Caption = VBA.Int(sngPercentage * 100) & "% Completed"
    UserForm1.lblBar.Width = (sngPercentage * 195)
    DoEvents
End Sub

Run the code
Double click the Userform1 to display the Userform
Press F5




© 2024 Better Solutions Limited. All Rights Reserved. © 2024 Better Solutions Limited TopPrevNext