ich suche nach einer Lösung für folgendes Problem:
Ich drucke über ein VBA Programm verschiedene Excel Tabellenblätter aus. In manchen der Excel-Dateien ist es notwendig, vor dem Drucken unter dem Reiter "Ansicht" in der Kategorie "Fenster" die Arbeitsmappe einzublenden (siehe rote Markierung im Bild). Anschließend öffnet sich ein Dialog der noch mit OK bestätigt werden muss (siehe schwarze Markierung im Bild). Und genau diesen Prozess würde ich gerne im VBA Code automatisieren.
Das Dialogfeld bekomme ich über folgenden VBA Befehl geöffnet:
Application.Dialogs(xlDialogUnhide).Show
An dieser Stelle komme ich nun nicht weiter, weil das Dialogfeld manuell mit OK bzw. Enter bestätigt werden muss. Wenn sich das Dialogfeld öffnet, hält der VBA Code gleichzeitig an, weshalb ich nicht weiß, ob dieser Prozess überhaupt komplett automatisierbar ist.
Meine Überlegungen waren:
1. Ist das Problem irgendwie über API lösbar (Auslösen der Enter Taste)? Damit kenne ich mich leider nicht aus.
2. Gibt es die Möglichkeit, einen VBA Befehl an ein zeitliches Ereignis zu koppeln? Ich stelle mir das in etwa so vor:
SendKeys ("{ENTER}").ontime Now + TimeValue("00:00:02")
Application.Dialogs(xlDialogUnhide).Show
Die Idee wäre also, das Ereignis "Enter-Taste drücken" schon vor dem Öffnen des Dialogfeldes anzustoßen, jedoch erst 2 Sekunden später auszulösen, sodass die Enter-Taste auslöst, wenn das Dialogfeld offen ist. Die Syntax ist natürlich nicht richtig...
Habt ihr noch andere Ideen? Über Anregungen wäre ich sehr dankbar!
Viele Grüße
Philipp