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

Label.width vs. ProgressBar

Label.width vs. ProgressBar
Frank
Hallo zusammen,
ich habe mir einen Statusbalken und eine Zeitanzeige für einen laufenden Prozess erstellt mit einem Label. Diesem Label wird dann mittels einer For Schleife die entsprechende Schrittweite der Label.Width Eigenschaft zugewiesen. Nun habe ich mal die Zeit gestoppt einmal:
mit Label Breite veränderlich und Zeit: 4:47min
ohne Label und nur Zeit: 2:10min
ganz ohne: 1:07min
Nun meine Frage: Bremst die DoEvents Anweisung den Prozess so aus und wenn ja wie kann man das optimieren? Wäre in diesem Fall eine ProgressBar besser und wenn ja wie steure ich diese an?
Viellcht sollte man auch die DoEvents ANweisung mit einer If Schleife umschließen und somit nicht ausführen..? Ich hoffe mein Anliegen ist verständlich.
Code Schnippsel:
Länge = 0 'Integer für Fortschrittsanzeige 1 (obere)
Länge2 = 0 'Integer für Fortschrittsanzeige 2 (untere)
Schritt = Hauptmenü.Label4.Width / LastRow
For k = 1 To LastRow 'diese For Schleife setzt den Wert für die Vergleichszeile
Fortschrittsanzeige_check = Hauptmenü.CheckBox10.value '0 = aus; -1 = an
Schritt2 = 252 / LastRow 'definieren von Delta
Länge2 = Länge2 + Schritt2 'Wert+1=Wert+Delta
If Fortschrittsanzeige_check = -1 Then
Hauptmenü.Label8.Width = Länge2
Hauptmenü.Label7.Caption = Format(k / LastRow, "0 %")
Else
End If
Time_set_on_2 = Timer 'Zeit für Zwischenzeit stoppen anschalten
Zeile = Zeile + 1
If Array_1(Zeile, 0) = "Yes" Then
Else
For l = Zeile + 1 To LastRow
Hauptmenü.Label14 = Format(Now - Zeit, "hh:mm:ss")
Hauptmenü.Label10.Caption = "Prüfe Zeile " & k & " mit Zeile " & l
Fortschrittsanzeige_check = Hauptmenü.CheckBox10.value '0 = aus; -1 = an
If Fortschrittsanzeige_check = -1 Then
Länge = Länge + Schritt
Hauptmenü.Label4.Width = Länge
Hauptmenü.Label5.Caption = Format(l / LastRow, "0 %")
Else
End If
DoEvents
Next l
End If
Länge = 0
DoEvents
Next k
Gruß, Frank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Label.width vs. ProgressBar
08.10.2009 21:12:30
F1
Bremst die DoEvents Anweisung den Prozess so aus und wenn ja wie kann man das optimieren?
Ja, klar, Hilfszähler und nur wenn dieser Mod 100 = 0, dann DoEvents, den besten Wert
(statt der angenommenen 100) durch probieren herausfinden.
Progressbar bringt keine Vorteile, macht aber ev. Probleme bei Weitergabe der Datei.
F1
wie meinst du das...
08.10.2009 22:14:56
Frank
...Ja, klar, Hilfszähler und nur wenn dieser Mod 100 = 0, dann DoEvents, den besten Wert
(statt der angenommenen 100) durch probieren herausfinden.
Meinst du damit, ich soll den DoEvents Vorgan nur bspw. jedes hunderte Mal beim durchlaufen der Schleife ausführen lassen? Und wenn ja, einfach einen Zahler um die DoEvents Anweisung bauen?
Gruß,Frank
Anzeige
Genau! ot
11.10.2009 18:14:55
F1
ot

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige