Progessbar
21.10.2014 08:42:18
Christian
ich verwende in einer Datei eine Progressbar, UserForm_Progress.
Eigentich funktioniert die Progessbar auch tadellos.
Die Progessbar wird zum Start der Excel Datei ausgeführt.
Sie läuft genau 20 Sekunden, da auch die Hintergrund aktualisierung 20 sekunden dauert. ( Mir ist bewusst, dass das eigentlich unsinnig ist, reicht aber vollkommen aus)
Der Fortschritt in der Progressbar wird allerdings nur ab 95% angezeigt. Was wahrscheinlcih darauf zurück zuführen ist, dass die Hintergrund aktualisierung etwas weniger als 20 Sekunden dauert.
Ist es möglich das der Fortschrittsbalken trotz aktualisierung angezeigt wird?
Das dazugehörige Modul sieht wie folgt aus:
Sub ProgressAnzeige()
UserForm_Progress.Show False 'Userform mit Fortschrittsanzeige
'Progressbalken initialisieren
With UserForm_Progress
.Caption = "Fortschrittsanzeige - Öffnen Datei " & ThisWorkbook.Name
.Label_Progress.Height = .Label_Hintergrund.Height
.Label_Progress.Left = .Label_Hintergrund.Left
.Label_Progress.Top = .Label_Hintergrund.Top
.Label_Progress.Width = 0
' .Label_Status.Caption = "Status: " & Application.StatusBar
End With
Takt = TimeSerial(0, 0, 2)
Zeit_Beginn = Now
Start_OnTime = Zeit_Beginn + Takt
Application.OnTime Start_OnTime, "Userform1_anzeigen"
End Sub
Private Sub Userform1_anzeigen()
Dim dblProgress As Double
'Fortschritt berechnen (Dezimalzahl zwischen 0 und 1)
dblProgress = (Now - Zeit_Beginn) / TimeSerial(0, 0, 20)
If dblProgress >= 1 Then 'Prüfung zum Starten des 2. Userforms
Unload UserForm_Progress
UserForm1.Show
Else
'Fortschrittsbalken aktualisieren
With UserForm_Progress
.Label_Progress.Width = dblProgress * .Label_Hintergrund.Width
.Label_Progress.Caption = Format(dblProgress, "0%")
' .Label_Status.Caption = "Status: " & Application.StatusBar
End With
Start_OnTime = Now + Takt
Application.OnTime Start_OnTime, "Userform1_anzeigen"
End If
End Sub
Sub Progressanzeige_Stoppen()On Error Resume Next
Application.OnTime Start_OnTime, "Userform1_anzeigen", schedule:=False
Unload UserForm_Progress
End Sub
Die Progressbar hat mir ein freundlicher User aus diesem tollen Forum erstellt!
Gruß,
Christian