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

Druckstatusfenster unterdrücken

Druckstatusfenster unterdrücken
11.11.2002 22:30:34
Björn
Hei zusammen,

ich habe eine VBA-Oberfläche programmiert, aus der heraus (größere) Druckaufträge initiert werden sollen. Ziemlich störend beim Loslegen der Druckroutine ist das über den Bildschirm flackernde Druckstatus-Fenster. Es ist zudem wenig hilfreich, weil nur an der eingebauten Fortschrittsanzeige gesehen werden kann, wie weit der Druckauftrag bereits an den Drucker geschickt wurde.

Weiß jemand, wie man das Druckstatusfenster unterdrücken kann? Und kann mir vielleicht auch jemand mit einem Tipp helfen, wie man die VBA-Routine abbrechen kann? Mit Escape funktioniert das seltsamerweise nicht. Scheint, als wäre der Rechner zu schnell für Esc?

Vielen Dank für Euere Hilfe!

Gruß

Björn

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Druckstatusfenster unterdrücken
12.11.2002 00:05:46
Martin Bolleter
Hallo Björn

zu 1)
versuch mal mit
Application.ScreenUpdating = False
Application.DisplayAlerts = False
(evtl beide). Am Ende des makro zurückstellen!

zu 2)
normalerweise kann ein VBA Makro mit Ctrl-Break unterbrochen werden, bzw. wenn man dies nicht will, muss es im Makro speziell unterbunden werden.

Gruss
Martin

Re: Druckstatusfenster unterdrücken
12.11.2002 08:37:25
Michael Scheffler
Hallo,

das hört sich ja nach Schleife an, es ist günstg (auch wenn ich jetzt wieder geschlagen werde:-), am Ende jedes Durchlaufs (Ende der Schleife), ein DoEvents zu schreiben, dann schaut das Betriebssystem auch nach, ob sich an der Tastatur etwas getan hat.


Gruß

Micha

Anzeige
Re: Druckstatusfenster unterdrücken
12.11.2002 09:30:04
Björn
Huhu Michael,

Warum wird man geschlagen, wenn man per DoEvents an das OS weiterreicht? Hmm... Ich hatte den Befehl schon von Haus in der Schleife - wegen der Fortschrittsanzeige. Leider reagiert das System trotzdem nicht aus Esc. Allerdings klappt STRG+Pause, wie von Martin vorgeschlagen. Dabei gibt es freilich eine ziemlich häßliche VBA-Fehlermeldung. Die wollte ich grundsätzlich eigentlich gerade mit einem eigenen Errorhandler abfangen. Auf STRG + Pause bleibt der EH allerdings ohne jede Wirkung :-(.
Am liebsten wäre mir: Druck auf Esc bricht Druck ab, eigene Msgbox informiert über Abbruch. Irgendwie muß das doch gehen....?

Vielen Dank für Deine Hilfe!

Gruß

Björn

Anzeige
Re: Druckstatusfenster unterdrücken
12.11.2002 09:38:27
Björn
Hei Martin,

1) klappt leider nicht :-(. Das hatte ich faktisch schon versucht und es scheint ohne Effekt auf das "normale" Druckfenster "Ausdruck" zu sein. Vielleicht kann man das Fenster auch gar nicht so einfach per VBA unterdrücken, weil es nicht von Excel, sondern vom OS ausgegeben wird? :-(

2) klappt. Erstaunlicherweise eigentlich, denn Esc, was normalerweise ja auch greift, bleibt ohne Wirkung. Allerdings führt STRG + Break zu einer unschönen VBA-Laufzeitfehlermeldung mit Verweis zum "Quellcode". Für Laufzeitfehler hatte ich einen Errorhandler geschrieben, der wiederum bei STRG+Break nicht funktioniert. Hast Du zufälligerweise gerade auch den Code zum Abfangen von STRG + Break parat?

Vielen Dank und Gruß

Björn

Anzeige
Re: Druckstatusfenster unterdrücken
12.11.2002 10:02:45
Björn
Huhu Martin,

für 2 habe ich jetzt eine Lösung gefunden - vgl. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/SFE7C.asp

Sub Excel97MsgBoxExample()
On Error Goto ERRORHANDLER
Application.EnableCancelKey = xlErrorHandler
MsgBox "First"
MsgBox "Second" 'This line gets skipped if Resume Next used
MsgBox "Third"
Exit Sub
ERRORHANDLER:
MsgBox "Escape Key Hit"
Resume 'Using Resume here ensures that no lines skipped
End Sub

Dabei muß man zwar tatsächlich CTRL + Break drücken, Escape funktioniert nicht. Das ist aber zumutbar ;-) Wenn man das ganze noch etwas modifiziert:

Errorhandler:
If Err.Number = 18 Then
MsgBox "Druckauftrag wurde vom Benutzer abgebrochen!"
Else
MsgBox "Laufzeitfehler " & Err.Number & " aufgetreten. Bitte Rückfrage bei ... ."
End If

bekommt man sogar eine idividuelle Rückmeldung über den Fehler :-)

Für P 1 habe ich immer noch keine Lösung :-(

Gruß

Björn

Anzeige
Re: Druckstatusfenster unterdrücken
12.11.2002 11:24:39
Michael Scheffler
Und wenn Du einer Schaltfläche in Deiner UserForm (die natürlich modeless sein müsste) die Cancel-Eigenschaft zuweist?
Re: Druckstatusfenster unterdrücken
12.11.2002 11:49:25
Björn
Huhu Michael,

sehr gerne...aber wie? Was ist eine modeless userform?
Ich versuch s gerade mit Hinweisfenster (STRG + Pause = Abbruch), wobei das Hinweisfenster angezeigt bleiben soll, während der Druckbefehl durchläuft. Problem dabei: wie referenziert man den Code in der ersten Userform aus einem Standardmodul heraus? Mit dem Ontime Befehl schafft man ja die überbrückung. Aber ich bekomme die Referenzierung nicht hin. der Befehl UserForms("USERFORMNAME") & "!MAKRONAME" liefert Laufzeitfehler :-(.
Natürlich wäre die von Dir vorgeschlagene Lösung in jedem Fall eleganter...

Gruß

Björn

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige