Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Progessbar

Progessbar
21.10.2014 08:42:18
Christian
Hallo zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Progessbar
21.10.2014 13:18:47
fcs
Hallo Christian,
scheinbar hat das OnTime-Ereignis keine Priorität vor der Aktualisierung der Datenabfrage. So das die Daten im Userform erst nach dem Ende der Datenaktualisierung neu dargestellt werden.
Leider kann ich dir da nicht weiter helfen.
Ich würde in dem Userform dann einfach eine Meldung anzeigen, dass die Daten aktualisietrt werden und das es ca. 20 Sekunden dauert.
Gruß
Franz

AW: Progessbar
21.10.2014 19:20:18
Christian
Hallo Franz,
joah dann kann man da wohl nichts machen. Danke trotzdem für deine Antwort.
Schönen Abend noch.
Gruß,
Christian
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige