thepinky
Goto Top

Excel Tabellenblätter als PDF speichern (in bestehenden Code)

Hallo zusammen,

habe mir über eine UserForm eine Druckvorschau erstellt.
Ich möchte allerdings keine Druckvorschau haben, sondern das ein entsprechendes PDF gedruckt wird und dieses in den gleichen Ordner abgelegt wird wo die Excel Arbeitsmappe liegt.

Wie muss ich den Code anpassen?

Private Sub CB_Druckvorschau_Click()

    'Variable definieren  
    Dim Blattname As String
    
    'Prüfen welches Tabellenblatt in der ComboBox ausgewählt wurde  
    If ComboBoxBlatt.Value = "Bedienkräfte" Then  
        Blattname = "Bedienkräfte"  
    Else
        Blattname = "Leckluft"  
    End If
    
    If OB_Hochformat.Value = True Then
        Sheets(Blattname).PageSetup.Orientation = 1
    Else
        Sheets(Blattname).PageSetup.Orientation = 2
    End If
    
    If CheckBoxAnpassen.Value = True Then
    
        Sheets(Blattname).PageSetup.Zoom = False
        Sheets(Blattname).PageSetup.FitToPagesWide = 1
        Sheets(Blattname).PageSetup.FitToPagesTall = 1
    Else
        Sheets(Blattname).PageSetup.Zoom = False
        Sheets(Blattname).PageSetup.FitToPagesWide = False
        Sheets(Blattname).PageSetup.FitToPagesTall = False
    End If
           
    'UserForm schließen  
    Me.Hide

    'Druckvorschau  
    Sheets(Blattname).PrintPreview
    
End Sub

Content-ID: 63731193511

Url: https://administrator.de/en/excel-tabellenblaetter-als-pdf-speichern-in-bestehenden-code-63731193511.html

Ausgedruckt am: 25.12.2024 um 19:12 Uhr

Blackmann
Lösung Blackmann 16.10.2023 um 14:14:20 Uhr
Goto Top
Ersetze mal

Sheets(Blattname).PrintPreview

durch

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _  
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False

Der PDF-Dateiname müsste noch Deinen Wünschen angepasst werden.

BG BM
thepinky
thepinky 16.10.2023 um 14:22:32 Uhr
Goto Top
Hi,

dann wird allerdings die ganze Mappe als PDF erstellt.
Ich möchte allerdings lediglich das Blatt ,welches in der ComboBox ausgewählt wurde als PDF haben. (mit den entsprechend gewählten Einstellungen)
godlie
Lösung godlie 16.10.2023 um 14:33:50 Uhr
Goto Top
Hallo,

das ist kein großes Hexenwerk, du must nur ActiveWorkbook durch dein Sheet ersetzen.
Sollte ungetesteterweise so gehen:
Sheets(Blattname).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _    
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False
Blackmann
Lösung Blackmann 16.10.2023 um 14:38:49 Uhr
Goto Top
Genau,

oder es ist aktuell Deine aktuelles Arbeitsblatt, dann so

ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _  
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False
thepinky
thepinky 16.10.2023 um 19:04:06 Uhr
Goto Top
Super, besten Dank!

Eine Sache noch, wenn ich den Inhalt der Variablen, als pdf Namen verwenden möchte.
Muss ich da etwas spezielles noch vorstellen?
Blackmann
Lösung Blackmann 16.10.2023 aktualisiert um 19:34:32 Uhr
Goto Top
N'Abend,

hier ein Beispiel für die Integration des Dateinamens der Excel-Datei:

Dim Datei_Name As String
Datei_Name = ThisWorkbook.Name & ".pdf"  

ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\" & Datei_Name, Quality:=xlQualityStandard _  
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False

Das kannst Du natürlich nach Deinen Bedürfnissen anpassen, Du hast ja schon die Blattnamen, kannst zur Unterscheidung Datum/Zeit ergänzen ...
... sollte klappen.

BG BM
thepinky
thepinky 16.10.2023 um 21:00:29 Uhr
Goto Top
Vielen Dank! Ihr habt mir sehr geholfen!