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-Key: 63731193511

Url: https://administrator.de/contentid/63731193511

Printed on: May 4, 2024 at 15:05 o'clock

Member: Blackmann
Solution Blackmann Oct 16, 2023 at 12:14:20 (UTC)
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
Member: thepinky
thepinky Oct 16, 2023 at 12:22:32 (UTC)
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)
Member: godlie
Solution godlie Oct 16, 2023 at 12:33:50 (UTC)
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
Member: Blackmann
Solution Blackmann Oct 16, 2023 at 12:38:49 (UTC)
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
Member: thepinky
thepinky Oct 16, 2023 at 17:04:06 (UTC)
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?
Member: Blackmann
Solution Blackmann Oct 16, 2023 updated at 17:34:32 (UTC)
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
Member: thepinky
thepinky Oct 16, 2023 at 19:00:29 (UTC)
Goto Top
Vielen Dank! Ihr habt mir sehr geholfen!