Sub Drucken() Dim i As Long Dim lastRow As Long Const myStep As Long = 57
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then Exit Sub Application.ScreenUpdating = False With Worksheets("Ausgabe") .Visible = True lastRow = .Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To lastRow Step myStep If .Range("A" & i + 8) <> "" Then .PageSetup.PrintArea = .Range("A" & i & ":O" & i + myStep - 1, "Q" & i & ":AE" & i + myStep - 1) '.PrintPreview .PrintOut End If Next i 'oder: .Visible = xlVeryHidden .Visible = False .DisplayAutomaticPageBreaks = False End With End Sub
11.09.2017, 19:44 (Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2017, 19:44 von Andy_Garcia.)
anbei die datei.
gedruckt werden sollen die seiten in den grau eingerahmten bereichen, wenn in den gelb markierten zellen etwas steht. alle nebenwerte (rechte seite) gehören zu den den hauptwerten (linke seite), das heisst, dass wenn in der gelben zelle in den hauptwerten etwas steht, die linke und rechte seite nacheinander in einer pdf gedruckt werden sollen (ahauptwerte auf einer seite und nebenwerte auf der anderen in einer pdf).
hoffe ich habe die problemstellung gut formuliert =)
leider haben sich die druckbereiche irgendwie geämdert, so dass alle seiten auf einer pdf gedruckt werden... :\
entschuldige bitte, ich hatte nur das zu druckende blatt dir zugeschickt ohne die blätter, auf die das blatt bezug nimmt. anbei das gesamte dokument. jetzt sollte es kein bezugsproblem geben.
hmm, ok dann muss das wohl mit irgendwelchen Einstellungen zu tun haben. seltsamerweise kann ich nach dem öffnen das makro beim ersten mal benutzen und er druckt auch aber gibt trotzdem den laufzeitfehler:
.PageSetup.PrintArea = .Range("A" & i & ":O" & i + myStep - 1, "Q" & i & ":AE" & i + myStep - 1)
an. ein zweites mal kann ich nicht mehr drucken, denn der fehler kommt sofort nach dem ausführen...
naja, dann werden die benutzer eben die leeren seiten von Hand entfernen müssen...