ich suche nach einer Möglichkeit, während einer längerwierigen
Sensitivitätsberechnung den Fortschritt der Berechnung auf dem Monitor
zu visualisieren.
Ich stelle mir nun folgende Funktionalität vor: Nachdem der Nutzer den
Button "Berechnung starten" gedrückt hat, läuft im Hintergrund die
Berechnung während ein Fenster mit Fortschrittsbalken automatisch den
Verlauf visualisiert und nach Ende der Berechnung auch automatisch
wieder verschwindet (ohne das der Nutzer zwischendurch irgendetwas
machen muss).
Die Information über den Fortschritt könnte ich aus der
Berechnungsschleife erhalten (diese wird bis zu 50 mal durchlaufen).
Wie kann ich diese Aufgabe lösen?
Dank und Gruß aus Pittsburgh!
Frank
Auf der Homepage von Michael Schwimmer findest du ein Beispiel wie es
gemacht werden kann:
http://schwimmer.bei.t-online.de/ (Rubrik Excel/VBA - Punkt 10)
Gruss
Marco
Auf der Homepage von Michael Schwimmer findest du unter der Rubrik Excel/VBA
beim Punkt 10 eine mögliche Lösung.
http://schwimmer.bei.t-online.de/
Gruss Marco
Hallo Marco,
danke für den Hinweis, hab mir das Listing durchgesehen - aber leider
ohne all zu viel zu verstehen. Habe auch irgendwie das Gefühl, das die
Routine zwar tolle optische Fortschrittsvisualisierungen liefert, aber
ich benötige eigentlich nur ein schlichtes Fenster, dass ohne den
Rechner zusätzlich zu bremsen, dem Benutzer einen Eindruck verschafft,
wie weit das Programm ist, und ob es noch läuft.
Gibt´s da vielleicht noch einfachere Möglichkeiten?
Gruß,
Frank
Heune schrieb:
>
> danke für den Hinweis, hab mir das Listing durchgesehen - aber leider
> ohne all zu viel zu verstehen. Habe auch irgendwie das Gefühl, das die
> Routine zwar tolle optische Fortschrittsvisualisierungen liefert, aber
> ich benötige eigentlich nur ein schlichtes Fenster, dass ohne den
> Rechner zusätzlich zu bremsen, dem Benutzer einen Eindruck verschafft,
> wie weit das Programm ist, und ob es noch läuft.
>
> Gibt´s da vielleicht noch einfachere Möglichkeiten?
Wie wäre es mit einer Userform mit Label, dessen Inhalt du stufenweise
aktualisierst?
10% / 20% / 30% / .....
--
Mit freundlichen Grüssen
Thomas Ramel
http://www.4853.ch/Schlesinger
http://www.swissgeo.ch/mapit.php3?www=http//www.4853.ch/Schlesinger&swissgeo_id=241718
Wenn Du möchtest, kann ich Dir eine Beispieltabelle mailen,
die einen netten Fortschrittsbalken in einer Userform anzeigt.
--
MfG
Peter Wolf
----------------------------------------------------------------------------
Bitte Antworten NUR in der Newsgroup
----------------------------------------------------------------------------
Leider werde ich mit SPAM-Mails zugeschüttet.
Bitte verzeiht, wenn ich nur eine Fake E-Mail angebe.
----------------------------------------------------------------------------
Heune <frank.h...@web.de> schrieb in im Newsbeitrag:
2eb98f74.02053...@posting.google.com...
hast recht. Ich hatte gestern net die Zeit das alles aufzubereiten.
In der Tabelle ist eben die Funtion besser sichtbar, als das hier
"imaginär" zu verdeutlichen.
Aber ich versuche es mal:
Mein System: WinNT, Office97 SP2
Das Beispiel rechnet markierte DM Beträge in Euro um und
vergibt das ISO-Format "#.##0,00 EUR".
Progressbar/Fortschrittsanzeige
Wichtig, im VBA-Editor muss ein Verweiss auf
"Microsoft Windows Commoncontrols" liegen.
1. Userform anlegen und das Control Progressbar auf der
UF plazieren.
2. ein Label auf der UF plazieren
3. CommandButton plazieren (ich hab das über ein Buttonereignis
geregelt).
4. Hinter den Commandbutton folgenden Code kopieren:
5. Irgendwelche Beträge im Format 100,00 DM markieren und
die UF aufrufen und das Makro starten
#################################################
Private Sub CommandButton1_Click()
'Fortschrittsanzeige in einer Userform
'by Peter Wolf
Dim zelle As Object
'Progressbar vorbereiten
ab = 0
Form.ProgressBar1.Min = ab
t = Selection.Cells.Count
Form.ProgressBar1.Max = t
'abarbeiten der Schleife für die Euroumrechnung
For Each zelle In Selection
If zelle.NumberFormat = "#,##0.00 ""EUR"";-#,##0.00 ""EUR""" Then _
Exit Sub
If zelle.HasFormula = True Or IsNumeric(zelle) = False _
Or IsEmpty(zelle) Or IsDate(zelle) Then
Else
zelle = zelle / 1.95583
End If
If IsEmpty(zelle) Or IsDate(zelle) Then
Else
With zelle
.Value = Application.WorksheetFunction.Round(zelle.Value, 2)
.NumberFormat = "#,##0.00 ""EUR"";-#,##0.00 ""EUR"""
End With
End If
'wichtig! dieser Teil MUSS in die Schleife integriert sein
ab = ab + 1
Form.ProgressBar1.Value = ab
Form.TextBox1.Value = "Status: " & Format(ab / t, "0%") & " abgearbeitet"
Form.Repaint 'dieser Befehl ermöglicht erst das "wandern" der Anzeige
Next zelle
'Ende der Schleife
Unload Form
End Sub
##########################################################
Wie gesagt das ist ein Beispiel. Aber es funktioniert.
Mein Ziel war es eine Fortschrittsanzeige mit "MS-Bordmitteln" zu erstellen
und
nicht mit wandernden Labeln (was auch eine tolle Lösung ist).
--
MfG
Peter Wolf
----------------------------------------------------------------------------
Bitte Antworten NUR in der Newsgroup
----------------------------------------------------------------------------
Leider werde ich mit SPAM-Mails zugeschüttet.
Bitte verzeiht, wenn ich nur eine Fake E-Mail angebe.
----------------------------------------------------------------------------
Ernst Späth <ernst....@t-online.de> schrieb in im Newsbeitrag:
adibrf$v7p$02$1...@news.t-online.com...
Hallo Wolf,
vielen Dank für deine mühe und deine Zeit, wollte ja auch keine
perfekte Endlösung sondern nur eine etwa so oder so.
außerdem ist das mal ein anderes Thema als jeden zweiten
Tag Stunden + Stunden Dastum + Datum..
nochmals besten Dank werde es mal genauer unter die Augen nehmen.
mfg Ernst (der sich immer wieder wundert woher die Leute alles wissen ?)
ich muss nicht alles wissen - ich muss nur wissen wo ich das
Wissen finde ;-))
Dann ein wenig "try and error" und eine Prise Google und die NGs,
gepaart mit der OH und manchmal klappts das was funzt ;-)))
Gruß von PETER Wolf
--
MfG
Peter Wolf
----------------------------------------------------------------------------
Bitte Antworten NUR in der Newsgroup
----------------------------------------------------------------------------
Leider werde ich mit SPAM-Mails zugeschüttet.
Bitte verzeiht, wenn ich nur eine Fake E-Mail angebe.
----------------------------------------------------------------------------
Ernst Späth <ernst....@t-online.de> schrieb in im Newsbeitrag:
adm0vh$79s$07$1...@news.t-online.com...