[Excel] Dialog per Code starten --> Fenster im Hintergrund

DrMueller

Erfahrenes Mitglied
Hi Leute,
ich hab zu diesem Thema schon mal hier angefragt und eine gute Lösung erhalten.
Folgendes ist der IST-Zustand:

Wir befüllen im Hintergrund ein Excel-File und lassen dem Kunden die Wahl per Printer-Dialog, wie es auszudrucken ist, und zwar mit dieser Zeile:

Code:
Call m_appExcel.Dialogs(8).Show

Soweit, so gut, aber nun erscheint das Printer-Fenster im Hintergrund, und wir wir wissen, sperrt dieses Fenster die weitere Durchführung des Codes, bis der Benutzer etwas ausgewählt hat.
Ich müsse dieses jedoch in den Vordergrund bringen, habe jedoch keine Ahnung, wie man das machen könnte, denn Vorgängig ist ja das Fenster noch nicht vorhanden (sonst wärs über eine API möglich) und den weiteren Code sperrt das Fenster selber.
Ich habe beim Verweis gesehen, dass man 30 Argumente mitgeben könnte, aber wenn ich das richtig verstanden habe, haben diese nichts mit dem Problem zu tun.

Hat da jemand eine Idee resp. bin ich überhaupt im richtigen Forum?


Wie immer Danke im Voraus
Müller M.
 
Eine normale Form könntest du über den Schalter vbModeless beim .Show so behandeln, bei den Systemdialogen geht das leider nicht. Mir stellt sich aber die Frage, wieso sich das bei dir im Hintergrund öffnet, bei mir geht das Fenster immer im Vordergrund auf.


Der Doc!
 
Hey Soong, ja hast recht, bei mir ist es Teils Teils, beim Tester anscheinend immer im Hintergrund etc.
Ich habe das böse Gefühl, dass hier nicht viel zu machen ist.

Vielleicht noch grad was anderes, wenn wir bei diesem Fenster sind:
Ich sollte im Druckbereich statt "Ausgewählte Blätter" "Gesamte Arbeitsmappe" im Standard haben, am besten dies noch sperren.
ist dies über diese 30 Argumente, die man mitgeben kann, möglich? Ich finde extrem wenig darüber im Internet.
 
Das mit der Vorauswahl würde so aussehen:
Visual Basic:
Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 3

Für die ganzen Argumente bei allen Dialogfeldern such in der VBA-Hilfe nach Dialogfeldargumente, im Punkt Listen der integrierten Dialogfeldargumente findest du dann alle drin. Die jeweiligen Werte für jedes Argument müsstest du selbst austesten.


Der Doc!
 
Zurück