vba : Code kurzfristig anhalten bis ...
07.02.2019 13:05:38
udo
Ich starte einen Ausdruck folgendermaßen :
Das ganze rufe ich für ein Tab2 auf ( ich befinde mich aber in Tab1 dabei ).
Wenn ich das Makro starte, beginne ich mit :
Application.ScreenUpdating = False ' ( zum Schluss dann wieder ...= True ) ,
Dann schiebe ich aus Tab. 1 entsprechende Einträge in Tab 2 ( die dann gedruckt werden soll - sprich der dort definierte Druckbereich ) ... wechsel dann in TAB2
( eben ohne Bildschirmaktualisierung ) bleibe der Sicht nach also in Tab1 ...
rufe dann das ( neuere ) Druckvorschaufenster mit ...
Call Application.CommandBars.ExecuteMso("PrintPreviewAndPrint")
und würde anschl. gerne wieder gleich in TAB1 wechseln
und dann wieder App.ScreenUpdtg.= True setzen
Das Problem dabei ist, dass das so dann in der Druckvorschau nur kurz den Druckbereich von Tab2 zeigt, während aber das Makro im Hintergrund ja weiterläuft sich der Vorschaubereich dann ändert und mir dann TAB1 anzeigt zum Drucken.
Ich bräuchte also eine Art kurzfristige Sperre bis die aufgerufene Druckvorschau dann geschlossen wird, dass erst dann der Code weiterläuft und er dann zu Tab1 zurückwechselt u danach dann Application.ScreenUpdtg. = True wieder setzt ...
Klar, wenn ich es mit Direktdruck ... ActiveSheet.PrintOut mache, dann spielt es keine Rolle und er macht es so ... Ich würde aber unseren USERN gerne die Möglichkeit geben, Trotz Druckbereich-Voreinstellungen, sich durch das öffnende Vorschaufenster in evtl. gewünschten eigenen Parameter zum Druck selbst, entspr. anpassen zu können. Sind die dann damit fertig, und Drucken oder schließen die Druckvorschau, erst dann sollte der restl. Code weiterlaufen.
Ginge das überhaupt bei
Call Application.CommandBars.ExecuteMso("PrintPreviewAndPrint") ?
Wäre euch für eine Hilfe hierzu sehr dankbar
LG udo