Hallo,
ich habe ein Excelblatt in dem ich mehrere Seiten mit Lieferscheinen (ungefähr von dieser Form) habe, von denen nicht immer alle ausgefüllt sind. Nun möchte ich von diesen nur bestimmte Seiten (in denen ein festgelegter Bereich nicht leer ist) drucken. Das habe ich gemacht habe, indem ich über die Pagebreaks iteriert habe und für jede Seite getestet habe, ob der Bereich (Spalte C) leer ist. Wenn das nicht der Fall ist, wird die aktuelle Seite gedruckt.
Das Problem bei diesem Vorgehen ist, dass ich für jede Seite einen neuen Druckauftrag erzeuge. Gibt es eine Möglichkeit, Meine Auswahl von Seiten in nur einem Druckauftrag sende?
Also ich habe bspw. die Seiten 1 bis 100. wobei Seite etwa die Seiten 3 und 54 leer sind. Gibt es einen Befehl der Art PrintOut(Seite 1, Seite 2, Seite 4, ... Seite 54, Seite 56,...Seite 100)?
So sieht mein Makro bisher aus:
Option Explicit
Sub LieferscheineDrucken()
Dim HPB As HPageBreak
Dim breakAdress As Integer
Dim pageNumber As Integer
Dim productNumber As Integer
Dim printCondition As Boolean
pageNumber = 1
printCondition = False
'Drucke Seite 1
For productNumber = 10 To 61
ActiveSheet.Cells(productNumber, "C").Select
If ActiveSheet.Cells(productNumber, "C").Value <> "" Then
printCondition = True
End If
Next
If printCondition = True Then
ActiveSheet.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
End If
printCondition = False
pageNumber = pageNumber + 1
'Drucken der restlichen Seiten
For Each HPB In ActiveSheet.HPageBreaks
breakAdress = CInt(Mid(HPB.Location.Address, 4, 5))
'Teste, ob Lieferschein Einträge enthält
For productNumber = (breakAdress + 9) To (breakAdress + 60)
If ActiveSheet.Cells(productNumber, "C").Value <> "" Then
printCondition = True
End If
Next
If printCondition = True Then
ActiveSheet.PrintOut From:=pageNumber, To:=pageNumber, Copies:=1, Collate:=True
End If
pageNumber = pageNumber + 1
printCondition = False
Next
End Sub
Vielen Dank für eure Hilfe!
|