ich möchte gerne während ein Makro abläuft eine Balkenfortschrittsanzeige in Vba basteln. Habt ihre eine Idee, wie das geht.
Danke.
Matthias
ich möchte gerne während ein Makro abläuft eine Balkenfortschrittsanzeige in Vba basteln. Habt ihre eine Idee, wie das geht.
Danke.
Matthias
Der Code vom Formular:
Private Sub UserForm_Activate()
Call startLangesMakro
Unload Me
End Sub
Der Code im Modul:
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.
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.
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