ich habe folgenden Code entwickelt:
Sub Drucken()
Dim Anz As Long, Druck As Range
Call Seiten
With Worksheets("AssessmentChange")
For Anz = 1 To UBound(rngSeite)
If Application.WorksheetFunction.CountA(.Range(rngSeite(Anz).Address)) 0 Then
Set Druck = Nothing
Set Druck = Union(Worksheets("Assessment").Range("A1:I2"), rngSeite(Anz))
Druck.PrintPreview
Set Druck = Nothing
End If
Next Anz
End With
End Sub
(Das Unterprogramm "Seiten" ist nachfolgend gelistet falls benötigt.)
Der Code prüft jede potentielle Druckseite ob da Eintragungen gemacht wurden, wenn ja soll diese Druckseite gedruckt werden samt den 2 Kopfzeilen 1 und 2 obendrüber.
Bei Druckseite 1 klappt das auch. Bei allen anderen Druckseiten werden pro Druckseite leider immer 2 Seiten in der Vorschau angezeigt. Erste Seite besteht nur aus den 2 Kopfzeilen, die zweite Seite ist dann so wie geplant (also Kopfzeilen und Druckseite)
Wie bekomme ich denn die erste Seite in der Vorschau weg?
Außer set Druck=Nothing fiel mir nix ein und das hilft nicht.
Danke ^ Gruß
Reinhard
Option Explicit
Option Base 1
Public rngSeite() As Range ', bolNichtleer() As Boolean
Sub Seiten()
Dim SW As HPageBreak, Anz As Byte, Von As Long, Bis As Long, Mldg As String
Von = 1
With Worksheets("Assessment")
For Each SW In .HPageBreaks
Bis = SW.Location.Row - 1
Anz = Anz + 1
ReDim Preserve rngSeite(Anz)
Set rngSeite(Anz) = .Range("A" & Von & ":I" & Bis)
Mldg = Mldg & "Blatt " & Format(Anz, "00") & " umfasst den Bereich " & rngSeite(Anz). _
Address & Chr(13)
Von = Bis + 1
Next SW
Bis = .Range("A" & Rows.Count).End(xlUp).Row
If Bis >= Von Then
Anz = Anz + 1
ReDim Preserve rngSeite(Anz)
Set rngSeite(Anz) = .Range("A" & Von & ":I" & Bis)
Mldg = Mldg & "Blatt " & Format(Anz, "00") & " umfasst den Bereich " & rngSeite(Anz). _
Address
End If
'ReDim bolNichtleer(Anz)
End With
'MsgBox Mldg
End Sub
Ereignis Code im Blatt "Assessment":
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Copy Destination:=Worksheets("AssessmentChange").Range(Target.Address)
End Sub