Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
492to496
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
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ProgressBar

ProgressBar
04.10.2004 18:45:54
Torsten
Hallo,
ich habe unten mal den Code gepostet den ich von Matthias R. gefunden habe. Der funktioniert super und stellt eine selbstgebastelte ProgressBar dar.
Ich nutze die ProgressBar um Blätter zu kopieren. Leider flackert ja der Bildschirm und die ProgressBar ist auch nur schlecht sichtbar. Mit ScreenUpdating = False sehe ich die ProgressivBar nicht mehr. Was kann ich tun um im Hintergrund Sheets zu kopieren und die Progressivbar doch deutlich sehen?
Danke im Voraus,
Torsten
Ma nehme...(diesmal nicht Dr. Oetker)
eine Userform die 2 Rahmen enthält:
den ersten so breit machen wie die Progressbar breit sein soll (Name:PB100).
den zweiten darauflegen, aber nur eine beliebige geringe Breite, und ein
Backgroundfarbe verpassen.(Name: PBx)
Also etwa so:
-----------------
||||____________|
Der einzige Code in der UserForm:

Private Sub UserForm_Activate()
Call startLangesMakro
Unload Me
End Sub

In ein Modul kommt der Rest:
Option Explicit
Dim mfStep As Double
Sub HierGehtsLos()
'anstatt startLangesMakro direkt aufzurufen, Umweg über Userform
frmPB.Show
DoEvents
End Sub
Sub startLangesMakro()
Dim i As Integer
Call initPB(2000)
For i = 1 To 2000
Sheets(1).Range("a1") = i
Call refreshPB
Next
End Sub
Sub initPB(lTotalSteps As Long)
With frmPB
.PBx.Width = 0 'zurücksetzen
mfStep = .PB100.Width / lTotalSteps 'Schrittbreite pro Aktualisierung
End With
End Sub
Sub refreshPB()
frmPB.PBx.Width = frmPB.PBx.Width + mfStep
DoEvents
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: ProgressBar
Volker
Hallo Torsten,
was hältst Du davon, irgendeine Anzeige in der Statusbar zu erzeugen?
Die ist nämlich immer sichtbar, auch wenn du das SreenUpdating unterdrückst.
Oder Du lässt eine Bildschirmaktualisierung an der richtigen Stelle zu also:

Sub xyz()
application.screenupdating=false
application.screenupdating=true
application.screenupdating=false
End Sub

Das benutze ich, damit gewisse Makros schneller laufen und der User trotzdem nicht glaubt, sein Rechner wäre abgestürzt.
Ist vielleicht nicht die Königslösung, aber praktikabel.
Gruß
Volker
Anzeige
AW: ProgressBar
ChrisL
Hi Torsten
Vielleicht kannst du ja das Bildschirmflackern vermeiden, auch ohne ScreenUpdating = False, oder mindestens verringern.
Falls du etwas mit Activate oder Select im Code hast, raus damit...
http://xlfaq.herber.de/xlbasics/main_sel.htm
Ist nur mal ein Schuss ins Blaue, aber vielleicht kannst du ja mal erklären, was dein "LangesMakro" so lang macht, ohne gleich den ganzen Code zu posten.
Gruss
Chris
AW: ProgressBar - über Control
04.10.2004 20:58:05
mischarichter
ja hei,
ganz andrer ansatz:
Während der auszuführenden aktion wird ein ungebundenes formular angezeigt,
im welchem eine richtige progressbar abläuft:
musst die kompontente comctl32.ocx in dein projekt einbinden (Microsoft Windows Common Controls 5.0 (SP2).
Dann haste ein richtiges Steuerelemente "ProgressBar"!
Mischa
www.vb-sok.de.vu
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige