Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
PDF aus Intranet drucken
05.01.2009 18:47:34
{Boris}
Hi Leute,
ich möchte aus Excel heraus PDF-Files drucken, die sich in unserem Intranet befinden.
Bisher kann ich sie mittels Hyperlink öffnen - muss dann aber noch manuell den Druck starten. Das möchte ich gerne vermeiden, zumal ich gerne mehrere Files ausdrucken möchte.
Ein klassischer Pfad (hier anonymisiert) liegt mir in der Exceldatei vor und ist so aufgebaut:
http://gbpk.meinunternehmen.net/abc/geschaeft/zeugs/profile/xyz_123456.pdf
Wie stell ich das an, dass das PDF automatisch ausgedruckt wird?
Danke für jeden Input.
Grüße Boris

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Link tuts nicht! oT
05.01.2009 19:42:03
Jens
oT
AW: Link tuts nicht! oT
05.01.2009 21:01:40
Roland
Grüße Dich ebenfalls, Boris
wenn du massenhaft PDF´s drucken willst, könnte dieser link was für Dich sein: https://www.herber.de/forum/archiv/660to664/t663329.htm
Du müsstest nur in die Prozedur Start_Print deine auszudruckenden Dateien "einschleifen" und dann sollte es gehen.
Gruß aus Berlin
Roland Hochhäuser
Ich hab schon so was befürchtet...
05.01.2009 21:29:00
{Boris}
Hi Roland,
...dass das wieder mal so´n Mammutcode von Max (Nepumuk) aus der Kategorie "Grusel-VBA" sein muss...
Ich kann das erst morgen wieder testen - "on the job". Melde mich dann wieder.
Danke und
Grüße Boris
Anzeige
AW: Ich hab schon so was befürchtet...
05.01.2009 23:23:08
Roland
Hi Boris,
wenn es dir gelänge, deine Intranet-Hyperlinks auf Laufwerkpfade á la "F:\Intranet\test.pdf" umzustellen, hätte ich noch folgendes (den ganzen Ramsch in ein allgemeines Modul):
Option Explicit
Private Declare Function GetShortPathNameA Lib "kernel32.dll" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Declare Function ShellExecuteA Lib "shell32.dll" (ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) _
As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const MAX_PATH = 260&
Private Const SW_HIDE = 0&

Public Sub Seriendruck()
Dim rngLinks As Range, rng As Range, strPfad As String
Dim strOldPrinter As String, strNewPrinter As String, strDefaultPrinter As String
Dim objWMI As Object, objItem As Object
Set rngLinks = Application.InputBox("Bitte nur Zellen mit den auszudruckenden PDF-Links  _
markieren", Type:=8)
On Error Resume Next
For Each rng In rngLinks
If rng Is Nothing Or Right$(rng.Text, 4)  ".pdf" Then
MsgBox "Bitte nur Zellen mit PDF-Links auswählen", vbOKOnly, "Abbruch des PDF-Druckes"
Exit Sub
End If
Next
On Error GoTo 0
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
ExecQuery("Select * from Win32_Printer where Default = 'true'")
For Each objItem In objWMI
strDefaultPrinter = objItem.properties_.Item("Name").Value
Next
strOldPrinter = Application.ActivePrinter
If Not Application.Dialogs(xlDialogPrinterSetup).Show Then Exit Sub
strNewPrinter = Application.ActivePrinter
If strNewPrinter  strOldPrinter Then
Set objWMI = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Printer")
For Each objItem In objWMI
If CBool(InStr(strNewPrinter, objItem.Name)) Then
objItem.SetDefaultPrinter
Exit For
End If
Next
End If
For Each rng In rngLinks
strPfad = rng.Text
PDF_Druck (strPfad)
Next
Application.ActivePrinter = strOldPrinter
Set objWMI = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Printer")
For Each objItem In objWMI
If InStr(1, strDefaultPrinter, objItem.Name)  0 Then
objItem.SetDefaultPrinter
Exit For
End If
Next
End Sub



Private Sub PDF_Druck(Dateiname As String)
Dim strPath As String, strShortPath As String, strFile As String
strPath = Mid$(Dateiname, 1, InStrRev(strFile, "\"))
strShortPath = Space(MAX_PATH)
GetShortPathNameA Dateiname, strShortPath, MAX_PATH
strShortPath = Left$(strShortPath & vbNullChar, InStr(strShortPath, vbNullChar) - 1)
ShellExecuteA GetActiveWindow, "print", strShortPath, vbNullString, strPath, SW_HIDE
Sleep 2000
End Sub


Das läuft bei mir definitiv und stellt dir den Drucker nach erfolgten Druckjobs auch wieder auf den vorherigen Drucker zurück.
Guts Nächtle aus dem kalten und dunklen (und gruseligen) Berlin
Roland Hochhäuser

Anzeige
PDF einfach über shell...
06.01.2009 13:53:00
RS
Hi Boris,
Vielleicht reichts ja, wenn du den Dateinamen des Hyperlinks ermittelst und dann über einen Shell Command direkt ausdruckst, z.B. so:

Sub erb()
Const tAcroRdExe = """C:\Programme\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"""
Dim tCmdCall As String
Dim vAnswer As Variant
tCmdCall = tAcroRdExe & " /t """ & ActiveCell.Hyperlinks(1).Address & """"
vAnswer = Shell(tCmdCall, vbMinimizedNoFocus)
End Sub


Grüsse RS

Das funktioniert leider nur...
06.01.2009 15:29:34
{Boris}
Hi RS,
...mit PDFs, die sich irgendwo auf der Festplatte tummeln.
Bei mir befinden sie sich allerdings im Intranet - und da meckert der Adobe Reader mit dem Begrüßungstext:
Beim Öffnen dieses Dokuments ist ein Fehler aufgetreten. Der angegebene Pfadname ist ungültig.
Der Intranetpfad zum PDF ist so aufgebaut (wie bereits im Eingangspost beschrieben):
http://gbpk.Bla/blub/irgendwas/nochwas/weiterhin/PDF-Name.pdf
Hast Du dafür noch ne Idee?
Danke und Grüße
Boris
Anzeige
Nachtrag
06.01.2009 15:31:21
{Boris}
Hi RS,
auf wenn Adobe meckert: Der Pfad stimmt natürlich, denn mit nem Klick auf den Hyperlink öffnet sich das PDF-File.
Grüße Boris
Leider keine Idee...
06.01.2009 16:03:00
RS
Hi Boris,
Ich seh jetzt das Problem. Vorher hab ich 's übersehen ;-)
Was ich aber annehme ist, dass bei einem Klick auf deinen Hyperlink sich nicht nur der Acrobat-Reader mit der Datei öffnet, sonder der Browser und im Browser ein AcroReader (plug-in). Und das Plugin lässt sich m.W. nicht so einfach von aussen steuern.
Irgendwie müsste man den Teil der Adresse: http://gbpk.Bla in ein Server/Verzeichnis umwandeln können, damit der autonome Reader die Datei öffnen/drucken kann. Ich bin mir auch nicht wirklich sicher, ob die Ansätze von Nepumuk und Rolf mit dem Problem fertig werden.
Grüsse RS
Anzeige
Der soll´s auch nicht tun...
05.01.2009 21:24:00
{Boris}
Hi Jens,
...natürlich kann man von außen auch nicht auf unser Intranet zugreifen. Ich wollte nur zeigen, wie so ein Link, der mir in der Exceldatei vorliegt, vom Aufbau her aussieht (ich weiß nicht mal, ob das irgendwas zur Sache tut).
Ich schau mir jetzt erst mal den Link von Roland an - mal sehen, ob ich damit klar komme.
Danke und
Grüße Boris
AW: PDF aus Intranet drucken
06.01.2009 19:35:43
Roland
Hi Boris,
das Teil müsste jetzt auch den Download schaffen. Check das bitte mal auf Office 2000, ich habe hier nur noch 2003.
https://www.herber.de/bbs/user/58132.xls
Grüße von
Roland Hochhäuser
Anzeige
Wow, perfekt!
07.01.2009 10:11:00
{Boris}
Hi Roland,
das läuft einwandfrei!
Besten Dank!
Grüße
Boris
Na dann . . .
07.01.2009 12:21:00
Roland
. . . bis zum nächsten VBA-Halloween ;-))
Mahlzeit
Roland Hochhäuser

183 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige