Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pdf aus Excel drucken

Pdf aus Excel drucken
15.08.2005 21:22:09
Max
Hallo,
ich habe hier im Forum ein Makro gefunden, welches PDF-Dateien im Hintergrund
drucken soll:

Sub test()
Datei = "C:\test.pdf"
Ergeb = Shell("C:\Programme\Adobe\Acrobat 5.0\Reader\AcroRd32.exe " & Datei, vbHide)
'AppActivate Ergeb
SendKeys ("^p")
End Sub

Der Dateiaufruf mit Acrobat geht, aber es läuft alles im Vordergrund ab.
Das Drucken muß man auch extra im Acrobat-Menü bestätigen.
Gibt es eine Änderung des Makro`s, mit der wirklich alles im Hintergrund
abläuft?
Wäre schön, wenn jemand von euch wüßte wie man das lösen kann!
Gruß
Max

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Pdf aus Excel drucken (weitere Ideen?)
16.08.2005 19:19:25
Max
Hallo Matthias,
erstmal vielen Dank für den Link ;)
Die Änderung des Makro auf

Sub test()
Datei = "C:\133.pdf"
Ergeb = Shell("C:\Programme\Adobe\Acrobat 5.0\Reader\AcroRd32.exe  /p /h" & Datei, vbHide)
End Sub

sorgt immerhin dafür, dass Acrobat nur noch in der Taskleiste liegt und von dort
geschlossen werden muß. Der Druck erfolgt im Hintergrund.
Falls sich jemand mit Komandozeilen-Befehlen auskennt und eine Idee hat, was
man per Slash noch hinter "/p /h" setzen kann damit sich der Reader wieder schließt,
wäre dann die perfekte Lösung.
Gruß
Max
Anzeige
AW: Pdf aus Excel drucken (weitere Ideen?)
16.08.2005 21:14:04
Matthias
Hallo Max,
probier das mal:

Private Declare Function CloseHandle Lib "kernel32" (ByVal _
hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As _
Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal _
hProcess As Long, ByVal uExitCode As Long) As Long
Const PROCESS_TERMINATE = &H1
Public lTaskID As Long
Sub Test()
Dim Datei As String
Datei = "C:\133.pdf"
lTaskID = Shell("C:\Programme\Adobe\Acrobat 5.0\Reader\AcroRd32.exe /p /h " & Datei, vbHide)
Application.OnTime Now + TimeValue("00:00:30"), "TaskBeenden" 'in 30 Sek beenden
End Sub
Sub TaskBeenden()
Dim hTask As Long
Dim lResult As Long
hTask = OpenProcess(PROCESS_TERMINATE, 0&, lTaskID)
lResult = TerminateProcess(hTask, 1&)
lResult = CloseHandle(hTask)
End Sub

Eine Notlösung, geb ich zu.
Hier wird der Reader nach 30 sec zwangsbeendet. Vielleicht braucht es etwas länger, die Zeit kann man ja anpassen.
Gruß Matthias
Anzeige
AW: Pdf aus Excel drucken
17.08.2005 19:03:26
Max
Hallo Matthias,
vielen Dank auch für diese Lösung ;-))
Mit den 30 Sekunden ist insofern egal, als der Drucker nach dem Druckbefehl
auch ohne geöffneten Reader weitermacht.
Hauptsache, Acrobat verkrümelt sich wieder.
Dir noch einen schönen Abend.
Gruß
Max

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige