20.10.2024, 11:03 
		
	
	
		Hallo zusammen, 
ich schaffe es nicht mit VBA ohne ein zusätzliches Drittprogramm eine PDF mit richtiger Skalierung zu erstellen. Entweder ich habe 4 Seiten oder alles auf einer Seite.
Erste Frage ist dieses überhaupt möglich ?
Dieser Code macht es mit den Druckbereichen richtig aber halt auf 4 Seiten 
Und mein anderer Ansatz wäre
Und dieser macht alles auf eine Seite
Wenn es generell nicht möglich ist dann muss ich das anders machen aber cool wäre es schon. Vielleicht kann mir dabei ja jemand helfen
	
	
	
	
ich schaffe es nicht mit VBA ohne ein zusätzliches Drittprogramm eine PDF mit richtiger Skalierung zu erstellen. Entweder ich habe 4 Seiten oder alles auf einer Seite.
Erste Frage ist dieses überhaupt möglich ?
Code:
Sub ExportToPDF()
    Dim ws As Worksheet
    Dim pdfPath As String
    Dim firstPageRange As Range
    Dim secondPageRange As Range
    ' Arbeitsblatt
    Set ws = ThisWorkbook.Sheets("Rufdienst WE")
    pdfPath = ThisWorkbook.Path & "\MeinePDFDatei.pdf" ' Speichert die PDF im selben Ordner wie die Excel-Datei
    'Querformat
    ws.PageSetup.Orientation = xlLandscape
    ' Skalierung auf eine Seite
    ws.PageSetup.FitToPagesWide = 1
    ws.PageSetup.FitToPagesTall = False ' Dies erlaubt mehrere Seiten, wenn notwendig
    ' Definiere den Druckbereich
    Set firstPageRange = ws.Range("D1:U94") ' Kombinierter Bereich für Seite 1 und Seite 2
    ws.PageSetup.PrintArea = firstPageRange.Address
    ' Seitenumbruch
    ws.HPageBreaks.Add Before:=ws.Range("D50") ' Setzt einen Seitenumbruch vor Zeile 50
    ' Exportiere
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    
End SubUnd mein anderer Ansatz wäre
Code:
Sub ExportToPDF()
    Dim ws As Worksheet
    Dim pdfPath As String
    Dim firstPageRange As Range
    Dim secondPageRange As Range
    ' Arbeitsblatt
    Set ws = ThisWorkbook.Sheets("Rufdienst WE")
    pdfPath = ThisWorkbook.Path & "\MeinePDFDatei.pdf" ' Speichert die PDF im selben Ordner wie die Excel-Datei
    ' Querformat
    ws.PageSetup.Orientation = xlLandscape
    
    ' Druckbereich für Seite 1
    ws.PageSetup.PrintArea = ws.Range("D1:U49").Address ' Bereich für Seite 1
    
    ' Skalierung
    ws.PageSetup.FitToPagesWide = 1
    ws.PageSetup.FitToPagesTall = 1
    ' Exportiere 1
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
    'Druckbereich für Seite 2
    ws.PageSetup.PrintArea = ws.Range("D50:U94").Address ' Bereich für Seite 2
    
    ' Skalierung
    ws.PageSetup.FitToPagesWide = 1
    ws.PageSetup.FitToPagesTall = 1
    ' Exportiere 2
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    
End SubUnd dieser macht alles auf eine Seite
Wenn es generell nicht möglich ist dann muss ich das anders machen aber cool wäre es schon. Vielleicht kann mir dabei ja jemand helfen

 
 

 
