Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
148to152
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
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Progressbar

Progressbar
19.08.2002 12:44:22
Marc
Ich möchte eine progressbar in ein Formular integrieren.

Diese Progressbar soll den fortschritt eines

Private Sub CommandButton1_Click()

Makros anzeigen.

Kann mir einer sagen wies geht oder wos steht???

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Progressbar
19.08.2002 12:48:06
Ingo
Schau mal recht weit unten im Forum nach,
da hatte ich die gleiche frage gestellt und darauf eine sehr gute und ausführliche Antwort bekommen.

ProgressBar - Ingo 15.08.2002 - 12:20:28 (8)

Re: Progressbar
19.08.2002 13:18:45
Udo RiHü
Warum so kompliziert? Einfacher ist, den Fortschritt in der Statuszeile anzeigen zu lassen.

Sub Test()
Testwert=10000
For I=1 to Testwert
Fortschritt= "Fortschritt: "&Int(I/Testwert*100)&"%"
Application.Statusbar=Fortschritt
Next I
Application.Statusbar=False
End Sub

Application.Statusbar=False muss sein, damit nach Ablauf der Prozedur wieder die normalen Meldungen angezeigt werden.

Gruss Udo

Anzeige
Code Progressbar
19.08.2002 14:27:40
Ingo
Ich stells dir ins forum da ham alle was davon ;-)

Ich nehm jetzt ma überall die standardnamen...
Der Button der angeklickt wird erhält folgenden Code:

Private Sub CommandButton1_Click()
UserForm1.Show
DoEvents
End Sub

So, dann erstellst du eine uf (=UserForm) auf die bastelst du 2 rahmen (Frame1 und Frame2). Der f1 wird dann den hintergrund bilden, der f2 den sich aufbauenden balken.
Wenn du soweit bist geh auf den code der uf und gib das ein:

Private Sub UserForm_Activate()
Call Programm
Unload Me
End Sub

(Achtung: nicht uf_click, sonder Activate! Programm ist der name des codes der eigentlich ablaufen soll)
Jetzt mach nen modul und gib folgendes ein:

Option Explicit
Dim mfstep As Double

Sub Programm()
Dim n As Integer
Call init(40)
Application.ScreenUpdating = False 'Der User sieht den Rechenprozess nicht
For n = 1 To 2000
Sheets(1).Range("a1") = n
Call refresh
Next n
Application.ScreenUpdating = False
End Sub

Die for-schleife die ich hier habe ist dein programm! Soll heißen, du nimmst deinen vorhandenen und packst ihn dahin. Und in diesen code solltest du an geeigneten stellen das „call refresh“ einfügen. Der befehl ruft das entsprechende unterprogramm auf, welches dann den balken „wachsen“ lässt. Also um so häufiger das ding steht, um so gleichmäßiger wächst der balken -> am besten in ne schleife packen...
So, fast fertig...
Jetzt noch die beiden unterprogrämmchen (im gleichen modul)

Sub initA(ITotalSteps As Long)
With UserForm1
.Frame2.Width = 0
mfstep = .Frame1.Width / 40
End With
End Sub

Und das refresh-teil:

Sub refreshA()
UserForm1.Frame2.Width = UserForm1. Frame2.Width + mfstep
UserForm1. Frame2.Caption = Format(UserForm1. Frame2.Width / 222, "0%")
DoEvents
End Sub

Das sollte jetzt alles sein und funtzen...
Wenn der balken zu groß wird oder net weit genug wächst teste mal andere Zahlen.(Bei „Call init(40)“ und „Width / 40“ statt 40 ne größere oder kleinere, siehst ja was sich ändert... und natürlich auch: „Frame2.Width / 222, "0%"“ die 222 ist die größe/breite der frames.. bei mir isse halt 222...)

Ich hoffe du kommst damit zum ziel
Gruß
Ingo

Anzeige
Fehler
19.08.2002 14:45:36
Ingo
Hab ich doch glatt nochn fehler neigewürgt..
Beim zweiten
Application.ScreenUpdating = False
ersetze bitte das false durch true
der rest paßt dann hoffe ich aber ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige