Pdf druckens in Abhängigkeit erstellen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Pdf druckens in Abhängigkeit erstellen
von: Matthias
Geschrieben am: 19.06.2015 08:37:09

Hallo,
ich habe eine Datei in der ich in Abhängigkeit des ausgewählten Blattes und eines Kriterium Ausdrucke von einem weiteren Blatt machen lassen kann.
https://www.herber.de/bbs/user/98204.xlsm
Ist es möglich, das Ganze so zu erweiterbar, dass Pdf`s erstellt werden und es nicht über einen realen Drucker geht?
Es sollte so sein, dass in dem Ordner in dem die Exceldatei selbst liegt ein Unterordner erstellt wird mit dem Namen PDF und in der die Pdf`s gespeichert werden.
Der Name der PDF ergibt sich zusammengesetzt als der Text aus zwei Zellen.
Kann mir hierzu wer helfen?

Bild

Betrifft: AW: Pdf druckens in Abhängigkeit erstellen
von: fcs
Geschrieben am: 19.06.2015 12:18:44
Hallo Mathias,
irgenwie kommt mir die datei bekannt vor.
Nachfolgend das Makro mit erweiterung zur Ausgabe als PDF.
Gruß
Franz

Sub Seriendruck(ByVal strSheet As String)
    Dim wksData As Worksheet, wksPrint As Worksheet
    Dim iRow As Integer
    Dim FolderPDF As String, File_PDF As String
    On Error GoTo Fehler
    Set wksData = ActiveWorkbook.Worksheets(strSheet)
    Set wksPrint = ActiveWorkbook.Worksheets("A") 'Name des zu drucken Blatts ggf. anpassen
    iRow = 2
    FolderPDF = ActiveWorkbook.Path & Application.PathSeparator & "PDF"
    If Dir(FolderPDF, vbDirectory) = "" Then
      VBA.MkDir FolderPDF
    End If
    FolderPDF = FolderPDF & Application.PathSeparator
    Do Until IsEmpty(wksData.Cells(iRow, 1))
      If UCase(wksData.Cells(iRow, 4).Value) = "P" Then 'Wert in Spalte D prüfen
        wksPrint.Range("A1").Value = wksData.Cells(iRow, 1).Value 'lfd. Nr
        wksPrint.Range("A2").Value = strSheet
        wksPrint.Calculate '???? - wenn Formelberechnungen aktualisiert werden müssen
        File_PDF = FolderPDF & wksPrint.Range("A1").Text & "-" _
            & wksPrint.Range("A2").Text & ".pdf" 'Zellen und verbindenden Text ggf. anpassen
        wksPrint.ExportAsFixedFormat Type:=xlTypePDF, Filename:=File_PDF, _
            Quality:=xlQualityStandard, IgnorePrintareas:=False, Openafterpublish:=False
      End If
      iRow = iRow + 1
    Loop
    
Fehler:
      With Err
        Select Case .Number
          Case 0 'Alles OK
          Case 9
            MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
              & "Blatt """ & strSheet & """ ist nicht vorhanden!"
          Case Else
            MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
        End Select
      End With
End Sub


Bild

Betrifft: AW: Pdf druckens in Abhängigkeit erstellen
von: Matthias
Geschrieben am: 24.06.2015 07:41:09
Hallo,
so die allerletzte Anpassung bräuchte ich noch.

Sub VV()
Dim wks As Worksheet
Dim iRow As Integer
Set wks = Worksheets("Mitgliederdaten")
iRow = 7
Do Until IsEmpty(wks.Cells(iRow, 1))
If wks.Cells(iRow, 14).Value = "V" Then
Worksheets("VV").Range("$T$1") = wks.Cells(iRow, 1)
Worksheets("VV").PrintOut
   End If
iRow = iRow + 1
Loop
End Sub

Der Code funktioniert super.
Nur sollte es noch auf PDF umgestellt werden. So wie hier.
Sub SeriendruckVPDF(ByVal strSheet As String)
    Dim wksData As Worksheet, wksPrint As Worksheet
    Dim iRow As Integer
    Dim FolderPDF As String, File_PDF As String
    On Error GoTo Fehler
    Set wksData = ActiveWorkbook.Worksheets(strSheet)
    Set wksPrint = ActiveWorkbook.Worksheets("V") 'Name des zu drucken Blatts ggf. anpassen
    iRow = 8
    FolderPDF = ActiveWorkbook.Path & Application.PathSeparator & "Verzichterklärung"
    If Dir(FolderPDF, vbDirectory) = "" Then
      VBA.MkDir FolderPDF
    End If
    FolderPDF = FolderPDF & Application.PathSeparator
    Do Until IsEmpty(wksData.Cells(iRow, 1))
      If UCase(wksData.Cells(iRow, 45).Value) = "A" Then 'Wert in Spalte D prüfen
        wksPrint.Range("T1").Value = wksData.Cells(iRow, 1).Value 'lfd. Nr
        wksPrint.Range("U1").Value = strSheet
        wksPrint.Calculate '???? - wenn Formelberechnungen aktualisiert werden müssen
        File_PDF = FolderPDF & wksPrint.Range("A5").Text & "_" _
            & wksPrint.Range("A6").Text & "_" & wksPrint.Range("U1").Text & ".pdf" 'Zellen und  _
verbindenden Text ggf. anpassen
        wksPrint.ExportAsFixedFormat Type:=xlTypePDF, Filename:=File_PDF, _
            Quality:=xlQualityStandard, IgnorePrintareas:=False, Openafterpublish:=False
      End If
      iRow = iRow + 1
    Loop
  Err.Clear
Fehler:
      With Err
        Select Case .Number
          Case 0 'Alles OK
          Case 9
            MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
              & "Blatt """ & strSheet & """ ist nicht vorhanden!"
          Case Else
            MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
        End Select
      End With
End Sub

Der Name der Dateien setzt sich dabei zusammen aus den Werten der laufenden Zellen der Spalten B und C. Desweiteren gibt es auch die Vorgabe des zu druckenden Zielblattes nicht, ich möchte nur den ersten Code so erweiteren, dass PDF in einem Pfad erstellt werden und die PDF mit einem definierten Name abgespeichert werden.
Vielen Dank
Gruß

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Pdf druckens in Abhängigkeit erstellen"