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, 18:44 (Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2017, 18: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...