HERBERS Excel-Forum - das Archiv

Thema: PDF per Knopfdruck speichern | Herbers Excel-Forum

PDF per Knopfdruck speichern
nicospostbox

Hallo zusammen!
Ich habe folgende Frage:
Ich habe ein Excel-Arbeitsblatt ("Produktionsdaten"), in dem ich per Auswahlfeld und Sverweis Produktionsdaten verschiedener Betriebe aufrufen kann.
Ich habe jetzt z.B. Unternehmen "Bauer" ausgewählt. Jetzt möchte ich per Knopfdruck die Seite als PDF drucken und unter dem Namen "Bauer.pdf" unter einem bestimmten Pfad speichern (steht in Zelle A1).
Als nächstes möchte ich Unternehmen "Müller" auswählen und die zugehörigen Daten dann unter "Müller.pdf" speichern.
Geht das irgendwie und wenn ja wie?
Danke für eure Hilfe!
Grüße,
Nico

AW: PDF per Knopfdruck speichern
Josef

Hallo Nico,
das hängt vom verwendeten PDF-Programm ab, welche benutzt du?
PS: hast du das gelesen?
https://www.herber.de/forum/messages/1123083.html
Gruß Sepp

AW: PDF per Knopfdruck speichern
nicospostbox

Hi Sepp!
Nee hatte ich noch nicht gelesen - scheint aber genau das zu sein nach was ich gesucht habe! Danke vielmals!
Ich benutze übrigens Adobe PDF!
Grüße,
Nico
AW: PDF per Knopfdruck speichern
Josef

Hallo Nico,
Verweis setzen, Code anpassen und probieren.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Function PrintToPDF(objSheet As Worksheet, strFileName As String, strPath As String)
  'Benötigt den Verweis auf "Acrobat Distiller"!
  Dim objDistiller As New ACRODISTXLib.PdfDistiller
  
  objDistiller.bShowWindow = False
  objSheet.PrintOut PrintTofile:=True, _
    PrtoFilename:=strPath & strFileName & ".ps"
  objDistiller.FileToPDF strPath & strFileName & ".ps", _
    strPath & strFileName & ".pdf", ""
  Kill strPath & strFileName & ".ps"
  Set objDistiller = Nothing
  
End Function

Sub printPDF()
  Dim objSh As Worksheet
  Dim strPath As String, strFileName As String, strActPrinter As String
  
  Set objSh = Sheets("Tabelle1") 'Tabellenname anpassen!
  
  With objSh
    strPath = .Range("A1").Text
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
    strFileName = .Range("C3").Text 'Zelladresse mit dem Namen - Anpassen!
    strFileName = strFileName & ".pdf"
  End With
  
  strActPrinter = Application.ActivePrinter
  
  Application.ActivePrinter = "Adobe PDF auf Ne03:" 'den Druckernamen anpassen, du
  'ermittelst ihn, wenn du ein Makro aufzeichnest und den
  'Drucker auswählst!
  
  PrintToPDF objSh, strFileName, strPath
  
  Application.ActivePrinter = strActPrinter
  
  Set objSh = Nothing
End Sub

Gruß Sepp