Aus Excel per VBA Abarbeitung eines Druckauftrages abfragen

Joerg66

Erfahrenes Mitglied
Hallo,
ich muß in Excel eine Art Serienbrief erstellen (nicht mit Adressen, sondern mit Daten)
wie ich das Ausdrucken und zusammenstellen der Daten programmiere ist mir klar.
Mein Problem wird warscheinlich sein, dass das Makro zu schnell ist und die Warteschlange überläuft. Deshalb brauche ich mal einen Tip, wie ich (ohne 100 Zeilen Code) nach jedem Druckjob per Schleife warte, bis der erledigt ist und erst dann den Nächsten sende.
Kann mir da jemand helfen?
Gruß Jörg
 
Hier gibt es ein Beispiel wo in Word auf die Druckereingeschaften usw. zugegriffen wird.

Ist aber einiges an Code.
 
Oh Graus,
ja, sowas hatte ich bereits gefunden, ist ja leider höllisch aufwendig. Dann werde ich das wohl mal durchackern und abspecken, mal sehen wie klein ich das schrumpfen kann.
Trotzdem vielen Dank für den link.
Ich werde die Anfrage aber noch nicht als erledigt kennzeichnen, vielleicht hat ja noch einer einen anderen Tip. Und wenn nicht, poste ich hier den schlanken Code und "erledige" dann.

Gruß Jörg
 
So, hier nun wie versprochen die von mir verwendete Lösung.
In der Funktion, an der Stelle, an der gewartet werden soll folgende Schleife einfügen:
Code:
Do While inWarteschlange > 0
     Application.Wait Now + TimeSerial(0, 0, 1) '1 Sekunde warten
Loop

Und irgendwo anders folgende Funktion dranhängen:

Code:
Public Function inWarteschlange() As Long
  Dim WMI
  Dim Jobs
  Set WMI = GetObject("winmgmts:\\.\root\cimv2")
  Set Jobs = WMI.ExecQuery("SELECT * FROM Win32_PrintJob")
  inWarteschlange = Jobs.Count
End Function
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück