mit einer with klammer with object.... end with schaffst du einen Bereich ,in dem du die Eigenschaften des Objektes ohne den Objektnamen nutzen kannst. Es muß nur der Punkt davor stehen. Das war ja schon so im Code. With klammern kann man auch ineinander schachteln.
Der Makrorekorder schreibt dir alle Pagesetupeigenschaften in das Makro. Aber du brauchst nur die zu behalten, die du auch verändern willst. Der Rest kann weg. das Pagesetup muß für jedes Blatt separat angesprochen werden. Mit einem Multiselect habe ich das noch nicht versucht. Kann natürlich auch klappen.
ActiveWindow.PageSetup.SelectedSheets
das ist quasi falsch herum Pagesetup ist ein Teil eines sheets und nicht eines Windows.
Sub Header()
'*******************************************************Header update bei Print ***************************************************************************************************
Dim sh As Worksheet
Application.ScreenUpdating = False
Application.PrintCommunication = True
For Each sh In ActiveWorkbook.Worksheets
Select Case sh.Name
Case "Change History and Approvals", "Key"
Case Else
With sh.PageSetup
.PageSetup.LeftHeader = Worksheets("Standards").Range("I6") & vbLf & "Rev.:" & " " & Worksheets("Standards").Range("I4") & vbLf & "Date (Rev.):" & " " & Worksheets("Standards").Range("I5")
.PageSetup.CenterHeader = ""
.PageSetup.RightHeader = "&G"
.PageSetup.LeftFooter = ""
.PageSetup.CenterFooter = "&""Arial,Fett""&9&K0070C0PFC" & Chr(10) & "Page &P of &N"
.PageSetup.RightFooter = ""
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
End With
End Select
Next
Application.PrintCommunication = False
Application.ScreenUpdating = True
End Sub
|