Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Progressbar bei Schlaufe über mehrere Sheets

Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 10:17:20
Elias
Guten Tag
Kann bitte jemand helfen, einen Progressbar in meine Userform einzufügen? Ich schaffe es nicht... Er sollte bei folgender Schlaufe (51 Sheets) integriert werden:
Sub Makro2()
On Error GoTo CleanUp
With Application
IngCalcSave = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 51
With Sheets(i)
Dim z As Integer
If CheckBox1.Value = True Then
For z = 6 To 203
If Worksheets(i).Cells(z, "BF") = "0" Then
Worksheets(i).Rows(z).EntireRow.Hidden = True
Else
Worksheets(i).Rows(z).EntireRow.Hidden = False
End If
Next z
Else: Worksheets(i).Rows.Hidden = False
End If
End With
Next i
CleanUp:
.Calculation = IngCalcSave
.ScreenUpdating = True
End With
End Sub
Im Moment wird per Button in einer UserForm das obenstehende Makro, sowie eine zweite Userform mit dem Progressbar aufgerufen. Weiter bin ich leider nicht gekommen.
Vielen Dank!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 10:45:42
Nepumuk
Hallo,
warum machst du das nicht per Autofilter? Da wäre dann genau 1 Befehl pro Tabelle, die Pfeile des Filters kannst du ja ausblenden.
Gruß
Nepumuk

AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 21:12:25
Elias
Das geht leider nicht, da sich die Sheets auf eine grosse Tabelle beziehen (s-Verweise), die jeden Monat geändert wird. Bei filtern muss nach jeder Änderung bei allen 51 sheets die nullfeilen ein- und wieder ausgeblendet werden, damit die Änderungen übernommen werden...

AW: Progressbar bei Schlaufe über mehrere Sheets
20.06.2014 09:14:53
Nepumuk
Hallo,
und mit deinem Makro geht das automatisch?
Um den Autofilter zu aktualisieren muss ich nur die ApplyFilter - Methode anwenden. Das sollte für 51 Tabellen nicht länger als 0,05 Sekunden dauern.
Gruß
Nepumuk

Anzeige
AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 10:53:40
Martin
Hallo Elias,
hoffentlich habe ich jetzt keinen Denkfehler:
Sub Makro2()
On Error GoTo CleanUp
With Application
IngCalcSave = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 51
With Sheets(i)
Dim z As Integer
If CheckBox1.Value = True Then
For z = 6 To 203
If Worksheets(i).Cells(z, "BF") = "0" Then
Worksheets(i).Rows(z).EntireRow.Hidden = True
Else
Worksheets(i).Rows(z).EntireRow.Hidden = False
End If
Next z
Else: Worksheets(i).Rows.Hidden = False
End If
End With
UserForm1.ProgressBar1 = Round(100/51*i) 'Prozentrechnung ;-)
Next i
CleanUp:
.Calculation = IngCalcSave
.ScreenUpdating = True
End With
End Sub
Falls sich deine Frage auf das Einfügen des Controls in der UserForm bezieht: Rechtsklick auf die Werkzeugsammlung der UserForm, "Zusätzlichs Steuerelemente...", dann in der aufgehenden Liste nach "Microsoft Progress Bar Control" suchen und ankreuzen.
Viele Grüße
Martin

Anzeige
AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 21:14:46
Elias
Hallo Martin
Danke für das Makro, werde es Morgen so testen...
LG Elias

AW: Progressbar bei Schlaufe über mehrere Sheets
20.06.2014 07:48:03
Elias
Hallo Martin
Habe deinen Code nun ausprobiert aber er funktioniert leider nicht.
Der Balken erscheint, beginnt aber gar nicht zu laufen und die Zeilen werden auch nicht mehr ausgeblendet.
Wenn ich das richtig sehe, ist er aber auch nicht abhängig von der oberen Formel... D.h. meiner Ansicht nach müsste in diesem Round-Befehl irgendwo ein i stehen, dass er von der Schlaufe nimmt... Bin ich da falsch?

AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 12:08:04
Daniel
Hi
Wenn du den Hinweis von Nepumuk befolgst und den Autofilter verwendest, wird das ganze so schnell, dass du wahrscheinlich keine Progessbar benötigst.
Ansonsten würde ich keine Progessbar verwenden, sondern den Bearbeitungsvortschritt in der Statusleiste am unteren Fensterrand anzeigen. Das macht am wenigsten Aufwand und belastet das System nicht zusätzlich.
Hier zu würde ich folgende Zeile vor dem Next i bzw nach dem For i = 1 to 51 einfügen:
Application.Stausbar = "In Bearbeitung Blatt " & i & "von 51: " & Format(i / 51, "0%")

Am Schluss gibst du dann die Statusleiste wieder für die normalen Excelmeldungen frei mit:

Application.Statusbar = False

Gruß Daniel

Anzeige
AW: Progressbar bei Schlaufe über mehrere Sheets
19.06.2014 21:19:00
Elias
Hallo Daniel
Mit Filter geht wie gesagt leider nicht. Wenn das Makro von Martin nicht klappt, werde ich es mit dem Balken in der Statusleiste versuchen.
Danke für deinen Tip.
Gruss Elias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige