Anzeige
Archiv - Navigation
1596to1600
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

Fortschrittsbalken zuweisen

Fortschrittsbalken zuweisen
11.12.2017 22:05:45
Marco
Sorry Hajo das ich nochmal diese Frage stelle, aber der alte Beitrag ist schon weg und ich verstehe den Fortschrittsbalken noch nicht oder ich habe ihn falsch verstanden.
Zu meiner Frage wie ich einen Fortschrittsbalken erstelle und zeitgleich mit der eigentlich Prozedur aufrufe weiß ich, aber kann es sein das ich dem Fortschrittsbalken nur eine Zeit vorgebe wie lange er zu laufen hat? Oder gibt es Fortschrittsbalken die die Prozessdauer des Buttons berechnen und dem entsprechend lange laufen?
Ich dachte nämlich immer das der Fortschrittsbalken solange läuft bis der Prozss abgeschlossen ist z.B. wie beim booten des PCs. Ich habe aber bis jetzt nur Videos gesehen in denen man dem Fortschrittsbalken sagt wie lang er zu laufen hat unabhängig vom Prozess.
Gruß Marco

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Fortschrittsbalken laufen per se asynchron...
12.12.2017 08:10:42
EtoPHG
zum eigentlichen Verarbeitungsprozess, Marco,
D.h. die Anzeige des Fortschrittbalkens läuft unabhängig, vom Prozess der die eigentliche Verarbeitung macht. Letzter muss dem Fortschrittbalken signalisieren (Informationen schicken) wenn seine Werte/Anzeige sich verändern muss. Wie soll denn ein Programm die Prozessdauer berechnen? Das ist völlig unmöglich, ohne den Prozess mindestens einmal zu durchlaufen. Und auch dann ist das eine einmalige Messzeit, die beim nächsten Mal, abhängig von anderen Prozessen oder veränderter Datenbasis, völlig anders aussehen kann! VBA Neulinge finden es irgendwie geil so ein Teil anzuzeigen. Ein Balken, falsch programmiert, kann aber mehr Schaden anrichten, als dem Anwender nützliche Information zu geben. Einfacher ist Fortschrittsmeldungen in der XL-Statusbar anzuzeigen. Aber auch dazu müssen natürlich im eigentlichen Programmcode, (Ablauf)punkte codiert werden die sinnvoll für diese Mitteilung sind.
Gruess Hansueli
Anzeige
AW: Fortschrittsbalken laufen per se asynchron...
12.12.2017 11:19:11
Marco
Danke für die Aufklärung Hansueli, ich dachte immer das die Prozessdauer bzw. der Fortschritt so berechnet wird wie in Windows wenn ich etwas von A nach B kopiere. Bei so etwas wird ja auch immer der Fortschritt, die Zeit und % angezeigt.
Das heißt also das ich dem Fortschrittsbalken eine Zeit vorgebe wie schnell er zu laufen hat und selbst wenn der eigentlich Prozess schon abgeschlossen ist läuft der Fortschrittsbalken weiter bis die vorgegebene Zeit abgelaufen ist. Ist das richtig?
AW: Fortschrittsbalken laufen per se asynchron...
12.12.2017 11:50:29
JoWE
Hallo Marco,
schau Dir mal diese Site an: https://www.online-vba.de/vba_fortschrittsanzeige.php
Hilfts?
Gruß
Jochen
Anzeige
Die Laufzeit wird NICHT vorgegeben,
12.12.2017 18:55:15
EtoPHG
Marco
Zitat: Das heißt also das ich dem Fortschrittsbalken eine Zeit vorgebe wie schnell er zu laufen hat und selbst wenn der eigentlich Prozess schon abgeschlossen ist läuft der Fortschrittsbalken weiter bis die vorgegebene Zeit abgelaufen ist. Ist das richtig?

Nein, das ist falsch. Nehmen wir dein Beispiel von A nach B kopieren. Der Kopierprozeess hat keine Ahnung wie lange das dauern wir. Also ist am Anfang Code, der die Anzahl Dateien und die Gesamtgrösse in Bytes bestimmt. Das geht im Millisekunden-Bereich. Dann werden die ersten paar hundert Bytes kopiert und die Zeit gemessen und von da ins Verhältis zur Gesamtanzahl als Fortschrittbalken angezeigt. Immer wieder wird z.B. bei einem Filewechsel oder einer Anzahl kopierter Bytes dieser Rechenprozess und die Aktualisierung des Fortschritts vorgenommen. Das heisst der Kopierprozess hat Code der diese Rechnungen vornimmt und der Fortschrittsanzeige zyklisch mitteilt.
Das alles kannst du aus folgenden Tatsachen ableiten:
1. Der Fortschrittsbalken wird nur bei einer genügend grossen Anzahl von Bytes und oder Files angezeigt, sonst nicht.
2. Die Berechnung der 'verbleibenden' Zeit ist immer eine ungefähre Angabe, die nie genau stimmen kann. Denn das hängt von der Hardware (Diskgeschwindigkeit, Übertragungsgeschwindigkeit und Belastung des Prozessors durch andere Programme/Prozesse) ab.
3. In manchen Situationen läuft auch die Kopier-Fortschrittsanzeige durch Einflüsse von 2. völlig aus dem Ruder.
Nochmals: Der Prozess selber muss Code enthalten um eine 'einigermassen sinvolle' Fortschrittsanzeige darstellen zu können. Voraussagen über die effektive Prozesszeit sind eben nur Hochrechnungen und keine effektiven Wahrheiten!
Gruess Hansueli
Anzeige
was passiert denn im Code ... ?
12.12.2017 11:56:25
Matthias
Hallo
Es kommt doch ganz darauf an was im Code passiert.
Läuft z.B. eine Schleife, so kannst Du einen Fortschrittsbalken
ganz gut steuern. Immer wenn die Variable einen anderen Wert erhält,
erhöhst oder reduzierst Du den Balken.
Gruß Matthias
AW: was passiert denn im Code ... ?
13.12.2017 08:18:29
Marco
Okay dann ist es aber doch schwerer als ich dachte. Ich habe jetzt nur einen ganz normalen Fortschrittsbalken erstellt der Zeitgleich mit dem Prozessläuft aber nur so lange wie ich es ihm vorgebe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige