Exceldatei zu PDF Verweis
03.10.2005 14:12:44
FrankyB
endlich habe ich eine Prozedur hier im Forum gefunden die so funzt wie ich mir das vorstelle.
Eine bestimmte Excel Datei wird in PDF umgewandelt und in ein - von mir vorgegebenen Ordner gespeichert - ohne weitere Meldungen - alles läuft im Hintergrund ab - perfekt.
Jedoch einen kleinen Haken hat die Sache noch.
Damit das Makro läuft, muss ein Verweis auf den AcrobatDistiller gesetzt werden. Also setzt das die Installation von AcrobatDistiller voraus. Das ist aber blöd, da ich doch eh nur mit dem FreePDF arbeiten möchte.
(Zur Info: unter dem AcrobatDistiller habe ich das Makro nicht ans laufen bekommen - dauernd meldete der Acrobat irgendeinen Fehler, den ich letztendlich nicht beheben konnte)
Frage: lässt sich das Makro so umschreiben, dass ich auf den Acrobat verzichten kann, oder ist das grundsätzlich nicht möglich. Meine Kenntnisse reichen nicht aus um das ab zu schätzen.
Wäre für einen Tipp dankbar
Gruss Frank
Option Explicit
Private Declare
Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
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
Sub druck_pdf()
Dim pdfDist As PdfDistiller 'Verweis auf "Acrobat Distiller" setzen
Dim strPrt As String, strFolder As String, strFile As String
Dim strPSFile As String, strPDFFile As String
Dim RetVal As Integer
Set pdfDist = New PdfDistiller
strPrt = Range("A1").Value 'PDF-Drucker >"FreePDF XP auf Ne00:"
strFolder = Range("A2").Formula 'Zielverzeichnis: zB "C:\Eigene Dateien\"
strFile = Worksheets("Tabelle1").Range("A3").Value 'Exceldateiname z.B Mappe1(ohne .xls)
strPSFile = strFile & ".ps"
strPDFFile = strFile & ".pdf"
ChDrive strFolder
ChDir strFolder
ActiveWindow.SelectedSheets.PrintOut ActivePrinter:=strPrt, prtofilename:=strFolder & strPSFile, printtofile:=True
pdfDist.FileToPDF strFolder & strPSFile, strFolder & strPDFFile, ""
Kill strFolder & strPSFile
End Sub