Option Explicit
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_fortschrittsanzeige.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.online-vba.de
' ****************************************************************
'Benötigt eine UserForm mit den Steuerelementen Frame1 und Label1 ...
Private Sub OVBAde_Fortschrittsanzeige()
Dim i As Long
Dim OVBAde_ProgressBar_dStepValue As Double
Dim OVBAde_ProgressBar_dProgress As Double
Dim OVBAde_ProgressBar_lStep As Double
Dim OVBAde_ProgressBar_MaxSteps As Double
Const lSTEPS As Long = 50000 'Wie viele Schritte sind 100%
Const dMAXLABELWIDTH As Double = 354 '100% Breitenangabe des Labels
'Initialisierung
OVBAde_ProgressBar_MaxSteps = lSTEPS
OVBAde_ProgressBar_dStepValue = CDbl(dMAXLABELWIDTH / CDbl(lSTEPS))
OVBAde_ProgressBar_dProgress = 0
'Fortschrittsanzeige einblengen
Frame1.Visible = True
Label1.Visible = True
Label1.Width = 1 'Fortschrittsbalken ganz nach links bringen
'Verarbeitungsstart Beispiel: Schleife von 1 bis lSTEPS
For i = 1 To lSTEPS
'Hier ist Platz für die gewünschten Aktionen :)
'Fortschrittsanzeige um einen Schritt erhöhen
OVBAde_ProgressBar_dProgress = OVBAde_ProgressBar_dProgress + OVBAde_ProgressBar_dStepValue
'Balken entsprechend vergrößern
Label1.Width = OVBAde_ProgressBar_dProgress
DoEvents
Next i
'Abschluss und Ausblenden
Frame1.Visible = False
Label1.Visible = False
End Sub