Anzeigen, dass ein Makro noch immer läuft

28/09/2009 - 17:52 von Frieda Beyer | Report spam
Word 2000

Hallo,

ich habe eine Prozedur geschrieben, die rund 15 andere Prozeduren
nacheinander aufruft. Das ganze kann unterschiedlich lange, manchmal
jedoch bis zu 10 Minuten dauern. Da die Geschichte gut funktioniert,
möchte ich jetzt auch nicht weiter nach Optimierungsmöglichkeiten suchen.

Der User startet die Aufruf-Prozedur und dann gibt es zeitweise ein
schönes Gerödel auf dem Bildschirm zu sehen, dann folgen jedoch auch
Prozeduren, bei denen scheinbar über einen làngeren Zeitraum nichts
passiert. Es làuft aber weiter. Am Schluss kommt dann die Meldung, dass
alles fertig ist.

Hat jemand eine Idee, wie ich dem User anzeigen kann, dass die Prozedur
noch "lebt"?

Gruß, Frieda
 

Lesen sie die antworten

#1 Thomas Gahler
28/09/2009 - 19:31 | Warnen spam
Hallo Frieda

Hat jemand eine Idee, wie ich dem User anzeigen kann, dass die Prozedur
noch "lebt"?


Da gibt es viele Möglichkeiten...


A.) Sanduhr einschalten
- system.cursor

B.)
Eine kleine Fortschrittsanzeige in der Statuszeile. Der Aufruf der Prozedur
muss an geeigneter Stelle regelmàssig stattfinden (siehe nachstehenden
Code).

C.)
Eine kleine UserForm, die ungebunden (vbModeless) angezeigt wird. Daruf
einen kleinen Fortschrittsbalken anzeigen lassen (kann ich dir bei Bedarf
liefern)

D.)
B und C gleichzeitig




Sub Demo()
procFortschrittAnzeigen 10
MsgBox "Statuszeile anschauen"
procFortschrittAnzeigen 20
MsgBox "Statuszeile anschauen"

procFortschrittAnzeigen 30, 50
MsgBox "Statuszeile anschauen"
procFortschrittAnzeigen 45, 50
MsgBox "Statuszeile anschauen"
End Sub

Private Sub procFortschrittAnzeigen( _
ByVal intWert As Integer, _
Optional ByVal intMaximum As Integer = 100)

Dim strFortschitt As String
Dim intStatus As Integer

intStatus = CInt(intWert / intMaximum * 100)

strFortschitt = String$(100, "-")
Mid$(strFortschitt, intStatus, 1) = "X"

strFortschitt = "|" & strFortschitt & "|"
strFortschitt = strFortschitt & " (" & CStr(intStatus) & "%)"

Application.StatusBar = strFortschitt
End Sub



Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen