Progressbar während Makro
19.01.2017 14:05:21
Mike
ich komme einfach nicht weiter, ich hoffe Ihr könnt mir (wieder einmal) helfen! :-)
Ich möchte während eines ziemlich langen Makros eine Verlaufsanzeige sichtbar haben, damit der _ User sieht, dass sich etwas in Arbeit befindet. Dazu habe ich vieles gefunden, hab's aber leider nur zur Hälfte ans Laufen gebracht. Habe ein Userform gebaut mit diesem Code:
Private Sub UserForm_Activate()
Dim xTop As Long, xLeft As Long
Me.StartUpPosition = 0
With Application
xLeft = .Left + .Width / 2 - Me.Width / 2
xTop = .Top + .Height / 2 - Me.Height / 2
End With
With Me
.Left = xLeft
.Top = xTop
End With
SW = 1
Label2.Width = 0
Call Progressbar1
End Sub
Am Ende wird das Makro Call Progressbar1 aufgerufen:
Sub Progressbar1()
SW = 2 'Schrittweite festlegen
Länge = 0
Schritt = PB1.Label1.Width / SW 'Schrittbreite pro Aktualisierung
For i = 2 To SW
Länge = Länge + Schritt
PB1.Label2.Width = Länge
PB1.Label3.Caption = Format(i / SW, "0 %")
DoEvents
---------ab hier folgt jede Menge Code wie Tabellenblätter füllen, sortieren, neu anlegen, etc.
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
'
'
'
'
Application.ScreenUpdating = True
Next
Application.Wait (Now + TimeValue("0:00:2"))
Unload PB1
End Sub
Mein Problem besteht darin, dass zwar die Fortschrittsanzeige sichtbar ist, allerding sofort mit 100% und halben blauen Balken angeziegt wird. Es bewegt sich allerdings nix. Zum Ende des Makros verschwindet sie auch wieder.
HAt jemand vielleicht eine bessere Lösung? Ist die Lösung abhängig vom jeweiligen Code der abgearbeitet wird? Ich hab's schon stundenlang Gegoogelt, jedoch werde ich nicht schlau daraus.
Viielen Dank für eure Hilfe!
Gruß
Mike