Fortschrittsanzeige mit Balken

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Fortschrittsanzeige mit Balken
von: Matthias
Geschrieben am: 22.05.2002 - 13:45:07

Hallo Excel-Gemeinde,

ich möchte gerne während ein Makro abläuft eine Balkenfortschrittsanzeige in Vba basteln. Habt ihre eine Idee, wie das geht.

Danke.

Matthias


nach oben   nach unten

Re: Fortschrittsanzeige mit Balken
von: mathias r.
Geschrieben am: 22.05.2002 - 14:21:15

Setze auf ein Formular 2 Frames. Einer für den Rahmen des Progressbars (PB100) und einer für den variablen Balken (PBx)
Der PBx kommt linksbündig auf den PB100.
Das besondere ist, daß das Formular die Routine aufruft die lange dauert (damite es ersteinmal überhaupt sichtbar ist und weil vor dem Schließen kein anderer Code ausgeführt wird)
Innerhalb der "langen" Routine wird die Fortschrittsanzeige aktualisiert.

Der Code vom Formular:

Private Sub UserForm_Activate()
Call startLangesMakro
Unload Me
End Sub


Der Code im Modul:


im mfStep As Double
Dim mfWidth As Double

Sub HierGehtsLos()
    'anstatt startLangesMakro direkt aufzurufen, Umweg über Userform
    frmPB.Show
    DoEvents
End Sub

Sub startLangesMakro()
Dim As Integer
    Call initPB(2000)
    For i = 1 To 2000
        Sheets(1).Range("a1") = i
        Call refreshPB
    Next
End Sub

Sub initPB(lTotalSteps As Long)
    With frmPB
        .PBx.Width = 0 'zurücksetzen
        mfStep = .PB100.Width / lTotalSteps 'Schrittbreite pro Aktualisierung
    End With
End Sub

Sub refreshPB()
    mfWidth = mfWidth + mfStep
    frmPB.PBx.Width = mfWidth
    DoEvents
End Sub


nach oben   nach unten

Re: Fortschrittsanzeige mit Balken
von: Matthias
Geschrieben am: 22.05.2002 - 14:49:49

Hallo Mathias,

vielen Dank für den Code. Wenn ich das Userform_Activate aufrufe wird ein Strich im Hintergrund angezeigt, es besteht jedoch kein farbiger Balken.

Ist es richtig, daß das Makro bei welchem der Balken erfolgen soll das Makro "startLangesMakro
" ersetzen muß?

Danke.

M.


nach oben   nach unten

Re: Fortschrittsanzeige mit Balken
von: mathias r.
Geschrieben am: 22.05.2002 - 15:36:19

Ja,

dein Makro was solange läuft das du überhaupt einen Balken brauchst, ist das "startLangesMakro".
Innerhalb deines Makros mußt du dann die Zeile "Call refreshPB" hinzufügen. Angenommen ist hier, daß dein Makro eine Schleife enthält die zeitlich lange läuft und für jeden Durchlauf der Balken ein Stück erweitert wird.


nach oben   nach unten

Re: Fortschrittsanzeige mit Balken
von: Hajo
Geschrieben am: 22.05.2002 - 18:21:24

Hallo Matthias


hier noch ein anderer Vorschlag. Bei einer Schleife

368. Fortschrittanzeige
Erstelle eine UserForm MIt einem Label gebe ihm den Namen LBL_Blau, Caption=""; Backcolor Schaltflächentext blau, die Höhe so hoch wie der Laufbalkensein sein die Breite ist Egal.
Ordne ein CommandButton auf der Userform an Gestaltung nach Deinen Wünschen folgenden Code in der Userform
Option Explicit
Private Sub CommandButton1_Click()
Dim rng As Range
Dim Faktor As Single
Dim Letzte As Long
ActiveSheet.Unprotect Password:="sokrates"
' Anzahl der Zellen erMIitteln
Letzte = ActiveSheet.Cells.SpecialCells(xlLastCell).Row * ActiveSheet.Cells.SpecialCells(xlLastCell).Column
' Maximale größe des Label auf der Useform 280
Faktor = 280 / Letzte: LBL_Blau.Width = 0
' UsedRange = benuzter bereich
For Each rng In ActiveSheet.UsedRange
LBL_Blau.Width = LBL_Blau.Width + Faktor: DoEvents
If rng.Locked = False Then rng.Value = ""
Next rng
ActiveSheet.Unprotect Password:="sokrates"
Range("B6").Value = ""
ActiveSheet.Protect Password:="sokrates", DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("B17").Activate
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
LBL_Blau.Width = 0
End Sub

und folgenden Code in ein Modul
Sub ClearUnlockedCells()
UserForm1.Show
End Sub


Ansonsten

369. API-Fortschrittsbalken
Hier der direkte Link zu Michael Schwimmer, resp. dem API-Fortschrittsbalken:
http://schwimmer.bei.t-online.de/sonderfunktionen.htm#Fortschrittsanzeige
Von Thomas Ramel


Gruß Hajo

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Fortschrittsanzeige mit Balken"