ProgressBar Spielerei

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

ProgressBar Spielerei

#1

Beitrag von thowe »

Moin,

eine kleinere Spielerei, mit einer "maßgeschneiderten", selbst gebastelten ProgressBar.

Oft ist es so, dass man doch mehrere, sehr viele Datensätze verarbeitet, kopiert, einfügt oder andere intensive Arbeitsschritte hat.

Da ist eine kleine Visualisierung oft nützlich und hilfreich für den Benutzer, dass doch alles - rund - läuft, und Excel nicht abgeschmiert ist.

Wie funktioniert die zum Herunterladen verfügbare Arbeitsmappe?

Einfach im- einzigen - Arbeitsblatt: "Progressbar" auf den Button "Die ProgressBar starten > clicken.
In diesem Arbeitsblatt wird in Zelle "C2" (Range: "vbaLblProgressBar") eine Zahl von 0 auf 100 gezählt und eine UserForm "dlgProgressBar" angezeigt.

Mit dem Click auf den Button wird die die Prozedur TestProgressBar aus dem Modul: "mdlTESTS" aufgerufen.
in dieser Prozedur wird auf Basis der Variable lngCounter definiert.
-> wer herumspielen möchte, kann diese Variable gerne mit einer Zelle im Arbeitsblatt verknüpfen und so individuell den Wert (lngCounter.Value) festlegen, anstatt im Code herumzustochern.

Die gesamte Mechanik findet dann in der UserForm "dlgProgressBar" in der Sub Prozedur: UpdateProgressbar statt.
PlayaroundsProgressBar.xlsm
(27.78 KiB) Noch nie heruntergeladen
Viel Spaß mit dieser VBAstelei!
LG thowe
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag:
d'r Bastler
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: ProgressBar Spielerei

#2

Beitrag von d'r Bastler »

Moin thowe,

na - Du kannst aber froh sein, dass Du diese Spielerei hier veröffentlich hast. Im Vorgängerforum, in dem ich eine ähnliche Anleitung vorgestellt hatte, sind einige der prominenten Experten über mich hergefallen, wie die Schmeißfliegen über verdorbenen Fisch.
Wer ProgessBars braucht, dokumentiert seine Unfähigkeit korrekt zu programmieren!
war der kosente Tenor von ein paar Leuten, die Belehrungen bis heute nicht lassen können. Sogar hier schon , aber diese Eselei fand dann schnell ein Ende.

Bin neugierig, wie du das gelöst hast...

... elegant!!
Ist auf jeden Fall hübscher, als das dröge Control, das sich in der Toolsammlung/Steuerelemente hinzufügen lässt.


lg
Zuletzt geändert von d'r Bastler am 14. Aug 2024, 20:36, insgesamt 1-mal geändert.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: ProgressBar Spielerei

#3

Beitrag von thowe »

Was meinst du mit:

Bin neugierig wie du das gelöst hast....?

LG

NS habe im Thread "Roadmap" @DonKey geantwortet...

lg
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: ProgressBar Spielerei

#4

Beitrag von d'r Bastler »

Och nö!! Lass doch die ollen Kamellen :lol: . Das Grautier ist seit meinem letzten Post zu seinem Thema inaktiv ...
Kommentar zu Deiner Lösung s.o. & u.
lg
Zuletzt geändert von d'r Bastler am 14. Aug 2024, 21:02, insgesamt 1-mal geändert.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: ProgressBar Spielerei

#5

Beitrag von d'r Bastler »

Moin thowe,

mit elegant meine ich drei Aspekte des Themas:
  • ist das Design Deines Bars deutlich ansprechender als das Microsoft ProgressBarControl version 6.0, das man zu den Steuerelementen hinzufügen kann
  • ist die Darstellung auch unabhängig von einer parent Userform möglich, und
  • müssen (können aber) die Parameter nicht hart-codiert sein, sondern kommen aus Deiner Tabelle
Interessant ist noch, aber das habe ich noch nicht getestet, wie sich Dein Modell auf die Performance der Ausführung des abzuarbeitenden Codes auswirkt. Mit der MS-Version konnte ich beim Einlesen von über 3000 Dateien in eine gegliederte und layoutete Tabelle Unterschiede von < 1 % der Verarbeitungszeit messen. Eine Verzögerung, die -weil sichtbar ist, dass da was verarbeitet wird- einen User sicher glücklicher macht, als wenn er mehrere Sekunden einfach nichts passieren sieht oder es 5 Millisekunden schneller geht.

lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
BitDoctor
Beiträge: 17
Registriert: 18. Aug 2024, 21:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: ProgressBar Spielerei

#6

Beitrag von BitDoctor »

Vorweg erstmal ein "Hallo" in die Runde.
Nach anfänglichem "geknödel" gibt es mich nun auch hier :)

Ich "Bastel" (geil das man das hier so frei benutzen kann) mir in den Fällen größerer Code-Schleifen dann immer einen
Pseudoteiler, damit der Code-Ablauf durch die Progressbar nicht völlig ins stocken kommt.

z.B. lass ich dann die Bar nur alle 50 oder 100 Durchläufe aktualisieren.

Das spart viel Zeit und hat dennoch den Effekt zu sehen, das da noch was passiert.

Code: Alles auswählen

'..........
Load PrgDlg
PrgDlg.Show 0
PrgDlg.Caption = "Abgleich läuft, bitte warten..."  'Aufruf Progressbar
ProgressBar 1 / lzE


For Z = 1 To lzE   'Schleife im Code (Beispiel)

'im Code am Ende der Schleife (Werte individell anpassbar)
If lzE < 100 Then
   Wert = WorksheetFunction.Round(lzE, -1) / 10
ElseIf lzE < 500 Then
   Wert = WorksheetFunction.Round(lzE, -1) / 50
Else
   Wert = 100
End If

      If Z Mod Wert = 0 Then  'wenn Schleife den "Teiler-Wert" erreicht dann Bar aktualisieren, sonst überspringen
          ProgressBar Z / lzE
      End If
      
Next Z             'Schleife im Code (Beispiel)
LG von mir
Folgende Benutzer bedankten sich beim Autor BitDoctor für den Beitrag:
d'r Bastler
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: ProgressBar Spielerei

#7

Beitrag von d'r Bastler »

Moin BitDoctor!

a very warm welcome! Ja! basteln darf man hier :) , getreu dem Motto ganz oben im Header der Site
VBAsteln makes the world go around ...
Was wäre die Welt ohne Bastler ... :o

Du hast mit Deinem Post Deine PseudoTrennung vorgestellt. Bietet sich natürlich an. Was ich nicht sehe, ist wie Du denn das PG abbildest. Baust Du das ähnlich wie thowe aus eigenen grafischen Elementen, oder nutzt Du das Microsoft Control?

Eine Spielerei, die ich vor Jahren mal zusammengeschustert (das war noch vor ambitioniertem VBAsteln) findet sich als Anhang.
ProgressBar.xlsm
(38.99 KiB) Noch nie heruntergeladen

Und das auch noch zum Thema: Ich habe meine CD-Sammlung komplett gegrabbed und so rund 4.500 Dateien gespeichert. Dazu habe ich mir ein Tool geschrieben, dass es mir erlaubt in diesem riesen Datendschungel zu suchen, finden und gefiltert abzuspielen. Das Tool liest beim Start alle Dateien neu ein (es könnte ja etwas dazugekommen sein - ja ich kaufe tatsächlich noch CDs ;) ) und formatiert in einer Tabelle einen hübschen Katalog.

Nachdem die Daten auf meinem lokalen Server liegen dauert das knapp eine Minute. Also natürlich ein PG (Microsoft-Control). Um eben Deine Trennung sinnvoll durchzuführen, ermittle ich beim Beenden des Tools die Gesamtzahl der Dateien und schreibe sie in eine CustomDocumentPorperty, die dann die 100% beim nächsten Programmstart vorgibt. Das PG zeigt immer 1/20 Fortschritt mit einem Segment.

lg und viel Spaß hier!
Zuletzt geändert von d'r Bastler am 19. Aug 2024, 18:20, insgesamt 1-mal geändert.
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
BitDoctor
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: ProgressBar Spielerei

#8

Beitrag von thowe »

Hallöchen BitDoctor,

& natürlich herzlich Willkommen in der Bastelstube. Aber nur Für VBArotiker (<<<<<<<neurotiker).

Neben einem - für mich - SoftwareDoctor, einem SoftwarePhilos0phen nun auch noch ein Bitdoctor. Mann oh Mann da ist was los...
Da sage ich: Die kantige Bastelei beginnt.

Auch, Danke für deinen Post und das Einbringen deiner faszinierenden, fantastischen Idee.

Da spitzen sich meine violetten Vulkanierohrenn richtig.... (heb wird dich aufklären)
damit der Code-Ablauf durch die Progressbar nicht völlig ins stocken kommt.
-> Wie sind hier deine Erfahrungen?, Wann trifft dieses stocksteife Verhalten auf...?
@all
Es gibt - aus meiner Sicht - selbsternannte Best Practicer - die meinen, es bedarf keiner Progressbar wenn man ordentlich programmiert.
Meine Meinung dazu, hier: https://vbasteleien.de/viewtopic.php?t=14#p1554

Wir freuen uns sehr auf weitere - mögliche - Basteleien, deinerseits, Herr BitDoctor

lg thowe
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag:
BitDoctor
Benutzeravatar
BitDoctor
Beiträge: 17
Registriert: 18. Aug 2024, 21:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: ProgressBar Spielerei

#9

Beitrag von BitDoctor »

@D´r Bastler,
## Was ich nicht sehe, ist wie Du denn das PG abbildest. ##
Über eine Userform - ich mag diese "Microsoft Control" einfach nicht.
Und außerdem finde ich ein UF einfach schicker.

@thowe,
## -> Wie sind hier deine Erfahrungen?, Wann trifft dieses stocksteife Verhalten auf...? ##
Nun ja, bei kleineren, ich nenne sie mal unspektakulären Schleifen kann man fast auf die PG verzichten.
Wenn jedoch bei Schleifen viele Zeilen und Spalten durchlaufen werden und bei jedem Durchlauf die PG aktualisiert wird,
dann macht sich das schon extrem bemerkbar. Da hilft die oben genannte Bastelei extrem, da die UF dann halt viel seltener ihr Anzeigeupdate durchläuft.
Der Aufruf und die Aktualisierung kosten halt Zeit. Ein kompletter Verzicht kommt für mich, bei längeren Makroabläufen, jedoch nicht in Frage.
Ich finde es einfach gut und sinnvoll, zu sehen das noch etwas passiert.
Folgende Benutzer bedankten sich beim Autor BitDoctor für den Beitrag (Insgesamt 2):
d'r Bastler, thowe
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: ProgressBar Spielerei

#10

Beitrag von thowe »

Hallöchen & Moin...,

iIch habe mal nachgedacht ob mann diese ProgressBar Spielerei nicht für akzentuiert, dynamische Diagrammbalken, -säulen verwenden könnte...?

Ich bin mir nicht sicher, da ich sehr selten Diagramme bastle/zaubere ob den Automatismus einer sich langsam farblich füllenden Säule (oder eines Balken) bis zum tatsächlichen Wert (der dargestellt werden soll) out of the box von Excel gibt. Sonst könnte man/ich ein "Template" bastlen und hier veröffentlichen.

Ich hoffe es ist nachvolziehbar was ich meine,

lg
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste