04.03.2021, 11:50
Hallo zusammen im Forum,
aktuell versuche ich in die Ausgabefunktion als PDF Dokument den manuellen Seitenumbruch so einzubinden, dass bestimmte Bereiche dynamisch davon ausgenommen werden. D. h., wenn der Seitenumbruch genau an der Stelle eines Textfeldes oder Bildes stattfinden soll, soll er oberhalb erfolgen und das Bild oder Textfeld mit Inhalt nicht auf zwei Seiten trennen (die Zeilenanzahl in der Tabelle und Höhe verändert sich immer wieder unterschiedlich).
Dazu habe ich mit einen Code geabaut, der dies anhand von bestimmten Zahlenwerten im Bereich dieser Bilder oder Textfelder erkennen können sollte. Ich habe mir dazu in einem Falll die 6666 und im anderen Fall die 9999 ausgesucht. Die Idee dahinter ist: wenn diese Werte in der Zeile des vom Programm vorgesehenen jeweiligen Zeilenumbruchs enthalten sind, dann wird der Seitenumbruch auf eine vorherige Zeile festgelegt.
Eine Beispieldatei füge ich bei mit dem Hinweis, dass die Ausgabe als PDF hier nicht funktioniert wegen des unvollständigen Pfades, - im Original geht das problemlos.
Hier Der Code:
aktuell versuche ich in die Ausgabefunktion als PDF Dokument den manuellen Seitenumbruch so einzubinden, dass bestimmte Bereiche dynamisch davon ausgenommen werden. D. h., wenn der Seitenumbruch genau an der Stelle eines Textfeldes oder Bildes stattfinden soll, soll er oberhalb erfolgen und das Bild oder Textfeld mit Inhalt nicht auf zwei Seiten trennen (die Zeilenanzahl in der Tabelle und Höhe verändert sich immer wieder unterschiedlich).
Dazu habe ich mit einen Code geabaut, der dies anhand von bestimmten Zahlenwerten im Bereich dieser Bilder oder Textfelder erkennen können sollte. Ich habe mir dazu in einem Falll die 6666 und im anderen Fall die 9999 ausgesucht. Die Idee dahinter ist: wenn diese Werte in der Zeile des vom Programm vorgesehenen jeweiligen Zeilenumbruchs enthalten sind, dann wird der Seitenumbruch auf eine vorherige Zeile festgelegt.
Eine Beispieldatei füge ich bei mit dem Hinweis, dass die Ausgabe als PDF hier nicht funktioniert wegen des unvollständigen Pfades, - im Original geht das problemlos.
Hier Der Code:
Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim letzteZeile As Integer
Const Bezeichnung1 = 6666
Const Bezeichnung2 = 9999
With ActiveSheet
.ResetAllPageBreaks 'Alle Seitenumbrüche zurücksetzen
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.PageSetup.PrintArea = "$A$2:$K" & letzteZeile
For i = 2 To letzteZeile
Select Case Cells(i, 1).Value
Case "Bezeichnung1"
If Cells(i, 1).Value = 6666 Then .HPageBreaks.Add Before:=Rows("60")
End Select
Select Case Cells(i, 7).Value
Case "Bezeichnung2"
If Cells(i, 7).Value = 9999 Then .HPageBreaks.Add Before:=Rows("90")
End Select
Next i
End With
'ab hier wird die Ausgabe als PDF Datei in das vorgegebene Verzeichnis durchgefürht, dies funktioniert auch in der Originalversion
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\Dieser PC\Users\Desktop\" & ActiveWorkbook.Worksheets("Tabelle1").Range("L1").Value, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub