Office: "Modales" Drucken von Dokumenten mit ShellExecute ?

Helfe beim Thema "Modales" Drucken von Dokumenten mit ShellExecute ? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich drucke derzeit über VBA/Excel beliebige Dokumente wie folgt aus: Sub PrintOutDocument(File As String) 'Verweis auf "Microsoft... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von davinius, 2. September 2013.

  1. "Modales" Drucken von Dokumenten mit ShellExecute ?


    Hallo zusammen,

    ich drucke derzeit über VBA/Excel beliebige Dokumente wie folgt aus:

    Sub PrintOutDocument(File As String)
    'Verweis auf "Microsoft Shell Controls And Automation", d.h. Shell32.dll, erforderlich !
    Dim shl As Shell32.Shell
    Set shl = New Shell32.Shell
    shl.ShellExecute File, "print", 1
    Set shl = Nothing
    End Sub

    Läuft prima - allerdings nur asynchron, d.h. die Dokumente werden zum Drucker gesendet und kommen nicht in der beauftragten Reihenfolge dort raus. Vielmehr stehlen sich kleine Docs nach vorne vor... Ich möchte das synchron, modal, oder wie auch immer - so dass die Docs immer in der Reihenfolge ihrer Druckbefehle gedruckt werden.

    Wie macht man sowas ?

    Win7, Office 10

    LG

    :)
     
    davinius, 2. September 2013
    #1
  2. Win7, Office 2010 meinte ich
     
    davinius, 4. September 2013
    #2
  3. Inzwischen habe ich eine VBA-Routine "Shell and Wait" gefunden. Sie ruft einen Kommandozeilenbefehl / oder -programm auf und setzt erst fort, wenn er/es ausgeführt und beendet wurde.

    Die neue Frage lautet also:

    Wie kommandiere ich den Druck eines Dokumentes mittels seines Standardprogrammes über die Kommandozeile ? So, dass das Standardprogramm - sichtbar oder nicht ist mir eigentlich egal - anschließend gleich beendet wird ? Wer weiß das ?

    Dann poste ich euch die Gesamtlösung.
     
    davinius, 5. September 2013
    #3
  4. "Modales" Drucken von Dokumenten mit ShellExecute ?

    hallo davinus,

    Excel als Programm mit Hilfe von API-Funktionen zum Ausführen beliebiger -Druckaufträge zu benutzen, ist nicht gerade das, was die Office-VBA-Götter sich für eine Tabellenkalkulation als unabdingbar vorgestellt haben. Frei nach Toyota, nichts ist unmöglich, aber warum soll man sich die Mühe machen, wenn jeder Druckauftrag auch von seinem zugehörigen Standardprogramm erledigt werden kann. Und dann gibt es ja noch DOS-Batches, Scripting, autoit und jede Menge andere Programmiersprachen.

    Du müsstest den Spooler beeinflussen, um Druckaufträge in der gewünschten Folge zu auszuführen.

    Hang loose, haklesoft
     
    haklesoft, 5. September 2013
    #4
  5. Hallo haklesoft,

    dann wurde ich ja immerhin von dir "erhört"... :-) Ja, du magst Recht haben - haben dieselben Götter aber nicht gerade die vielfältigen "Selbststrickmöglichkeiten" gepriesen ?

    Okay, zu Erklärung: Das Excel-Tool verwaltet Dokumente (PDF, DOC, JPG... grundsätzlich jedes druckbare Dateiformat) und deren Pfade. Irgendwann sollen diese Dokumente jeweils mit einem Trennblatt - das ist ein Excel-Sheet desselben Workbooks mit bestimmten Variablen und Verzierungen - in einem Rutsch ausgedruckt werden. Bisher habe ich die Dokumente einzeln doppelgeklickt und gedruckt - insgesamt wurden da so 20 Dokumente mit insgesamt 250-350 Blatt gedruckt. In Zukunft will ich den Druck gleich in dem Verwaltungssheet per Buttonclick nur anstoßen und mich dann faul mit nem Kaffee in die Sonne legen ;-)

    Bislang saust die Routine durch und die Trennblätter schlängeln sich dabei nach vorne. Mit einer 30-Sekunden-Druckverzögerung kriege ich das nun meistens verhindert. Aber sauberer wäre ein ereignisorientiertes Warten.

    Any ideas ? ;-)
     
    davinius, 6. September 2013
    #5
  6. Hallo davinius,

    im "normalen" VB benutze ich zum Ausführen fremder Programme eine Klasse, die mir bei Bedarf den Durchlauf des Prozesses mitteilt.
    Das Teil habe ich nicht selbst entwickelt, kann aber die Quelle nicht mehr nennen. In der vorliegenden Form ist sie aber nicht für Win7/64 ausgelegt!

    Hang loose, haklesoft Code:
     
    haklesoft, 8. September 2013
    #6
  7. Hallo Haklesoft,

    danke für deine Beiträge !

    Kann es in Anbetracht des langen Quelltextes nicht doch sinnvoller sein, über die Kommandozeile zu drucken ? Vor allem, wo das Ausführen beliebiger Anwendungen ja schon funktioniert ?

    Außerdem möchte ich dem Code nicht erst sagen müssen, wo sich das Standardprogramm zum Drucken der Datei befindet - und wie es heißt.

    Einstweilen habe ich eine Verzögerung von 30 Sekunden zwischen den Druckaufträgen eingebaut - was das Problem zumindest symptomatisch löst.

    Ich schließe den Thread damit für mich ab und sage herzlichen Dank !

    ;-)
     
Thema:

"Modales" Drucken von Dokumenten mit ShellExecute ?

Die Seite wird geladen...
  1. "Modales" Drucken von Dokumenten mit ShellExecute ? - Similar Threads - Modales Drucken Dokumenten

  2. User form Drucken Position

    in Microsoft Excel Hilfe
    User form Drucken Position: Hallo Leute Habe den Code für das Ausdrucken einer User Form.. Die User Form wird im A4 Blatt gedruckt habe aber links nur einen Abstand von einem 1 cm zum Blattrand. Wie kann ich den Abstand vom...
  3. Durchgestrichenen Text nicht drucken

    in Microsoft Excel Hilfe
    Durchgestrichenen Text nicht drucken: Hallo zusammen. Ich bin noch ziemlich unerfahren und bräuchte mal eure Hilfe. Folgende Situation: Ich habe eine Tabelle mit verschiedenen Blättern. Einige Blätter werden über einen Button...
  4. Nur befüllte Seiten drucken

    in Microsoft Excel Hilfe
    Nur befüllte Seiten drucken: Hallo, ich bräuchte dringend Hilfe bei einem Excel-Thema. Und zwar: Ich habe eine Datei erstellt mit etlichen Registerblättern. Jedes Registerblatt enthält 11 Seiten - Auf der 1. Seite ist immer...
  5. Word-Formulr ohne Platzhalter drucken

    in Microsoft Word Hilfe
    Word-Formulr ohne Platzhalter drucken: Hallo, ich bin neu hier und habe fast keine Programmiererfahrung/Kenntnis. ich habe ein Word-Formular, dass ich über ein Makro ausdrucken möchte - ohne Platzhalter. Dabei bekomme ich jedoch...
  6. Formular als PopUp aber nicht Modal

    in Microsoft Access Hilfe
    Formular als PopUp aber nicht Modal: Hallo Wissende, meine Formulare öffnen normalerweise maximiert (in der Accessanwendung). Nun möchte ich dem Nutzer optional die Möglichkeit geben in einem 2. Formular parallel (z.B. auf dem 2,...
  7. Modal-Eigenschaft (Gebunden)

    in Microsoft Access Tutorials
    Modal-Eigenschaft (Gebunden): Modal-Eigenschaft (Gebunden) Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  8. Modales Dialogfeld etc.

    in Microsoft Access Hilfe
    Modales Dialogfeld etc.: Hallo! Ich hab folgendes Problem: ich sollte aus einer Excel Datei eine Datenbank machen. soweit bin ich auch gekommen. Aber nun soll ich eine Maske einrichten in der nach bestimmten daten...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden