Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1592to1596
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

VBA Prozess Bar

VBA Prozess Bar
04.12.2017 23:00:18
Marco
Hallihallo,
ich will mal in die Runde fragen ob jemand weiß wie ich eine Progress Bar in meine Auswertung implementieren kann? Meine Auswertung kann je nach wahl mal länger oder schneller laufen, daher würde ich dies gerne mit einer Statusanzeige darstellen. Wenn jemand weiß wie das geht oder eine fertig hat wäre das natürlich super. Im Internet haben die immer sehr aufwendig ausgesehen.

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Prozess Bar
05.12.2017 05:47:20
Rainer
Hallo Marco,
Probiere mal so: Erster Schritt ist die Struktur deines Quellcodes. Du braucht einen Fortschrittzähler.
z.B.

Sub Rechnen()
i_max = 10000
Fortschritt = 0
For i = 1 to i_max
Call Berechne_Werte    'irgendwas willst du ja berechnen
Fortschritt = i/i_max
Sheets(1).Range("A1") = Fortschritt
Call Fortschrittsbalken
Next i
End Sub
Dann kannst du z.B. 2 Rechtecke erstellen, das erste machst du rot, das zweite machst du weiß.

Sub Fortschrittsbalken()
Breite = 100           'Breite des Forstschrittbalkens
Links = 30             'Linke Position des Balkens
Oben = 10              'Obere Position des Balkens
Höhe = 10              'Höhe des Balkens
Fortschritt = Sheets(1).Range("A1") * Breite
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Left = Links
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Width = Fortschritt
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Height = Höhe
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Top = Oben
ActiveSheet.Shapes.Range(Array("Rectangle 2")).Left = Links + Fortschritt
ActiveSheet.Shapes.Range(Array("Rectangle 2")).Width = Breite - Fortschritt
ActiveSheet.Shapes.Range(Array("Rectangle 2")).Height = Höhe
ActiveSheet.Shapes.Range(Array("Rectangle 2")).Top = Oben
End Sub
Gruß,
Rainer
Anzeige
Wg. des VBA-Level
05.12.2017 10:21:54
RPP63
Moin!
Vielleicht wäre es sinnvoller, das Makro zu beschleunigen.
Da wir das nicht kennen, ist dies natürlich nur eine Mutmaßung.
Anyway: Eine wie auch immer geartete Fortschrittsanzeige benötigt natürlich zusätzliche Ressourcen.
Gruß Ralf, der offen lässt
AW: Wg. des VBA-Level
05.12.2017 11:58:57
Marco
Da hast du natürlich recht Ralf, aber ich gehe stark davon aus dass das Makro selbst wenn es jetzt schnell ist mit der Zeit aufgrund der Datenmenge immer langsamer wird. Deswegen hätte ich gerne so einen Prozess Balken.
Ich habe ein Beispiel im Internet gefunden und es in meine Zieldatei eingebunden. Aber wie verknüpfe ich jetzt den Ablauf? Es sollte ja so sein das wenn ich den Button "TOP 3 FEhler" anklicke die Fortschrittsanzeige angezeigt wird?

Die Datei https://www.herber.de/bbs/user/118105.xlsm wurde aus Datenschutzgründen gelöscht


Anzeige
AW: VBA Prozess Bar - in Statusleiste
05.12.2017 10:42:23
Daniel
Hi
die einfachste Form der Fortschrittsanzeige wäre ein Hinweistext in der Statusleiste (unterhalb vom Excelfenster).
Dort zeigt auch Excel selbst seinen Berechnungsfortschritt bei längeren Berechnungen an.
Um einen Text in der Statusleiste anzuzeigen, verwendet man den Befehl:
Application.Statusbar = "Dein Hinweistext"
spätestens bei Makroende sollte dann folgender Befehl erfolgen, um die Statusleiste wieder für Excel freizugeben:
Application.Statusbar = False

hier ein Beispiel für die Nutzung der Statusbar in einer Schleife:
Sub test()
Dim i As Long
Dim Anzahl As Long
Anzahl = 5000
For i = 1 To Anzahl
Application.StatusBar = "in Arbeit: " & i & " von " & Anzahl & ": " & Format(i / Anzahl, "0% _
")
'--- ab her dann der normale Schleifencode
Cells(1, 1).Value = i
Next
Application.StatusBar = False
End Sub

Gruß Daniel
Anzeige
AW: VBA Prozess Bar - in Statusleiste
05.12.2017 19:56:17
Marco
Danke Daniel, den habe ich gerade ausprobiert und es funktioniert, aber ich würde gerne der in meiner angehängten Datei aus dem Beitrag davor verwenden. Könntest du mir sagen wie ich das am besten anstelle?
AW: VBA Prozess Bar - in Statusleiste
06.12.2017 03:16:37
Rainer
Hallo Marco,
wenn du den Beitrag oder die Datei verlinkst, dann steigen deine Chancen auf Hilfe stark an!
Gruß,
Rainer
AW: VBA Prozess Bar - in Statusleiste
06.12.2017 16:35:13
Hajo_Zi
dem kann man nur zustimmen.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: VBA Prozess Bar - in Statusleiste
06.12.2017 21:33:51
Marco
Guten Abend ihr beiden,
ich war mir eigentlich sicher das ich die Datei zwei Beiträge vorher angehängt habe. Aber egal, in der Datei aus dem Internet ist so ein Process Bar aufgeführt und ich würde diesen gerne in meine Datei einbauen das wenn ich auf den Button "Fehler anzeigen" clicke der Balken erscheint die Zeit die für den prozess berechnet wird und das Teil läuft. Bei meinen Versuchen endete das alles in der unendlichkeit oder hat sich aufgehängt.
Datei aus dem Internet:
https://www.herber.de/bbs/user/118155.xlsm
Meine Datei:
https://www.herber.de/bbs/user/118156.xlsm
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige