Voortgangsindicator VBA

Een voortgangsindicator geeft aan hoelang een proces duurt. Het voordeel hiervan is dat de gebruiker niet in het luchtledige hoeft te wachten.

In het onderstaande voorbeeld wordt met behulp van een UserForm een voortgangsindicator gemaakt.

Voortgangsindicator VBA - Pascal ter Heege

Voortgangsindicator VBA

Een voortgangsindicator geeft aan hoelang een proces duurt. Het voordeel hiervan is dat de gebruiker niet in het luchtledige hoeft te wachten.

In het onderstaande voorbeeld wordt met behulp van een UserForm een voortgangsindicator gemaakt.

De onderstaande code simuleert een fictief proces in 10 stappen met telkens 1 seconde wachttijd.

01Option Explicit
02 
03Sub start()
04 
05    Dim huidig As Integer
06    Dim max As Integer: max = 10
07     
08    For huidig = 1 To max
09     
10        DoEvents
11     
12        Application.Wait Now + TimeValue("00:00:01")
13         
14        toonVoortgang huidig, max
15 
16    Next huidig
17 
18End Sub

Om gebruik te kunnen maken van de onderstaande code dienen de volgende objecten aangemaakt te worden: UserForm, Frame en Label. Wijzig de initiële namen van deze objecten niet.

01Sub toonVoortgang(huidig As Integer, max As Integer)
02  
03    With UserForm1
04      
05        .Label1.BackColor = vbBlue
06        .Label1.Width = huidig / max * .Frame1.Width
07        .Show 0
08        .Repaint
09      
10    End With
11  
12End Sub

De onderstaande code simuleert een fictief proces in 10 stappen met telkens 1 seconde wachttijd.

01Option Explicit
02 
03Sub start()
04 
05    Dim huidig As Integer
06    Dim max As Integer: max = 10
07     
08    For huidig = 1 To max
09     
10        DoEvents
11     
12        Application.Wait Now + TimeValue("00:00:01")
13         
14        toonVoortgang huidig, max
15 
16    Next huidig
17 
18End Sub

Om gebruik te kunnen maken van de onderstaande code dienen de volgende objecten aangemaakt te worden: UserForm, Frame en Label. Wijzig de initiële namen van deze objecten niet.

01Sub toonVoortgang(huidig As Integer, max As Integer)
02  
03    With UserForm1
04      
05        .Label1.BackColor = vbBlue
06        .Label1.Width = huidig / max * .Frame1.Width
07        .Show 0
08        .Repaint
09      
10    End With
11  
12End Sub