Clever-Excel-Forum

Normale Version: VBA Makro: Aktuelles Tabellenblatt als PDF Speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin ziemlicher VBA Anfänger.

Ich möchte gerne am Ende meines Tabellenblatt ein Makro installieren, der per Auswahl das aktuelle Tabellenblatt als PDF speichert.

Der Nutzer soll dann die Möglichkeit bekommen den Speicherpfad selbst auswählen zu können.

Könnt Ihr mir dazu weiterhelfen?

Der VBA Code zum Druck des aktuellen Tabellenblatt lautet bei mir:

Sub druck1()
   With ActiveWorkbook.Sheets("Tabelle 1")
      .PageSetup.PrintArea = "$A$1:$H$296"
      .PrintPreview
   End With
End Sub

und funktioniert wunderbar.

Vielen Dank
Hallo,

für einen Anfänger hast du dir ja direkt was kompliziertes vorgenommen.

Dein Makro zeigt ja die Druckvorschau. Was das mit dem Speichern als Pdf-Datei zu tun hat, verstehe ich jetzt nicht so ganz.

Ich habe dich so verstanden, dass du deinen Druckbereich als PDF-Datei speichern möchtest. Probier mal so:
Code:
Sub printPdf()
Dim vFileName As Variant
'Dateiname festlegen
    vFileName = Application.GetSaveAsFilename(filefilter:="*.pdf,*.pdf,*.*,*.*")
    If vFileName = False Then Exit Sub          'Abbrechen wurde geklickt
    If Len(Dir(vFileName)) <> 0 Then
        If MsgBox("Soll die Datei " & Dir(vFileName) & " überschrieben werden?", vbYesNo) = vbNo Then
            Exit Sub
        End If
    End If
    
'Druckbereich festlegen und als Pdf-Datei speichern
   With ActiveWorkbook.Sheets("Tabelle1")
        .PageSetup.PrintArea = "$A$1:$H$296"
        .ExportAsFixedFormat Type:=xlTypePDF, _
                            Filename:=vFileName, _
                            Quality:=xlQualityStandard, _
                            IncludeDocProperties:=True, _
                            IgnorePrintAreas:=False, _
                            OpenAfterPublish:=True

      
   End With
End Sub

bringt dich das weiter?

Grüße, Ulrich
Hallöchen,

aus der Druckvorschau heraus kann man auch drucken. Könnte sein, dass der Ausdruck erst mal geprüft werden soll.