Gruppe
Allgemein
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