AW: Fortschrittsanzeige in Statuszeile
20.03.2009 13:05:27
Lang
Hallo Fred, hallo Tino,
nachfolgend das von mir angesprochene "tolle Teil" - "LaufschriftInStatusZeile" - aus Thema: Allgemein - Gruppe Statusleiste. An sich funktioniert es. ABER was muss ich tun, damit es während einer VBA-Routine abläuft? Wie muss ich sie einbinden? Erst dann macht es ja Sinn.
Die Empfehlung von Tino zur Datei "60477.xls" ist aber auch sehr interessant. Damit wird sogar die ganze Breite der Statuszeile genutzt und da ein Lauf von rechts nach links erfolgt, ist diese Lösung noch auffallender.
Wäre für beide Lösungen dankbar!
Gruß Klaus
--------------------------------------------------------------------------------
Hier die Kopie des Code für "LaufschriftInStatusZeile" (Herber):
Problem: Wie kann ich in der Statusleiste während des Abarbeitens einer VBA-Routine eine Fortschrittsanzeige anzeigen lassen?
ClassModule: DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayStatusBar = bln
End Sub
Private Sub Workbook_Open()
bln = Application.DisplayStatusBar
Application.DisplayStatusBar = True
End Sub
StandardModule: Modul1
Public bln As Boolean
Sub Fortschritt()
Dim iCounter As Integer
Application.DisplayStatusBar = True
For iCounter = 1 To 10
StatusLED "Bisher abgearbeitet: ", iCounter / 10
Application.Wait Now + TimeSerial(0, 0, 1)
Next iCounter
Application.StatusBar = False
End Sub
Private Function StatusLED(sMsg As String, sPct As Single)
Dim iPct As Integer, iReps As Integer
With WorksheetFunction
iPct = .Round(sPct, 2) * 100
iReps = Int(iPct / 10)
Application.StatusBar = sMsg & .Rept(Chr(14), iReps) & _
.Rept("*", 10 - iReps) & " " & iPct & "%"
End With
End Function