Registriert seit: 29.01.2025
Version(en): 365 Business
Hallo WS-53
nun, wenn ich keine andere Lösung finde, werde ich Deine Idee umsetzen.
Danke Martin
Registriert seit: 09.01.2022
Version(en): Microsoft 365
Alternativ kannst du auch den Druckbereich dynamisch festlegen:
Hier mal das Ergebnis des Marorecorders: ActiveSheet.PageSetup.PrintArea = "$A$1:$A$4,$A$6:$A$10,$A$19:$A$21"
Registriert seit: 29.01.2025
Version(en): 365 Business
Hallo ws-53
Habe es nun so gemacht, wie Du vorgeschlagen hast. War eine gute Idee und funktioniert super.
Ablauf (für die, welche es interessiert):
1. ganzes Tabellenblatt kopieren
2. neues Tabellenblatt (Kopie) umbenennen in "Druck"
3. Zeilen, die ich vorher ausgeblendet habe im neuen Tabellenblatt löschen
4. .pdf erstellen und abspeichern
5. Tabellenblatt "Druck" löschen
Danke für die Hilfe
Gruss
Martin
Registriert seit: 26.09.2022
Version(en): 2019
Moin allerseits,
du kannst auch einfach alle Zeilen durchlaufen, schauen, ob ein PageBreak vorhanden ist und ob die betreffende Zeile sichtbar ist. Anschließend merkst du dir die sichtbaren seiten und füllst sie in eine Datenstruktur, mit der du später die zu druckenden Seiten ausgibst. In meinem Beispiel habe ich mal ein Dictionary verwendet, weil mir das die Möglichkeit gibt, über die Keys ein Join auszuführen:
Code:
Option Explicit
Sub testen()
Const FIRSTROW As Integer = 2
Dim rw As Range
Dim i As Long
Dim pages As Object
Set pages = CreateObject("Scripting.Dictionary")
i = 1
For Each rw In Me.UsedRange.Rows
If rw.Row = FIRSTROW And rw.Hidden = False Then pages.Add i, i
If rw.PageBreak = xlPageBreakManual Then
i = i + 1
If rw.Hidden = False Then pages.Add i, i
End If
Next
Debug.Print Join(pages.keys, ",")
End Sub
Viele Grüße
derHöpp