View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
OssieMac OssieMac is offline
external usenet poster
 
Posts: 2,510
Default Omit header from first page without embedding header in code

Four different macros with slightly different functions. See the comments at
the top of each.

Regards,

OssieMac

Sub One_worksheet_Multi_Page()
'Printing from one worksheet only with multiple pages
'No header on first printed sheet.

Dim wsSheet As Worksheet
Dim strLeft As String
Dim strRight As String
Dim strCenter As String

Set wsSheet = Sheets("Sheet1")
With wsSheet
strLeft = .PageSetup.leftHeader
.PageSetup.leftHeader = ""
strCenter = .PageSetup.CenterHeader
.PageSetup.CenterHeader = ""
strRight = .PageSetup.rightHeader
.PageSetup.rightHeader = ""
.PrintOut From:=1, To:=1
.PageSetup.leftHeader = strLeft
.PageSetup.CenterHeader = strCenter
.PageSetup.rightHeader = strRight
.PrintOut From:=2
End With
End Sub

Sub Multi_WS_Looping_1()
'Printing multiple worksheets looping through
'the individual sheets.
'No header on first printed page of each worksheet.
'Each worksheet page numbering starts at 1.

Dim wsSheet As Worksheet
Dim strLeft As String
Dim strRight As String
Dim strCenter As String

For Each wsSheet In Worksheets
With wsSheet
strLeft = .PageSetup.leftHeader
.PageSetup.leftHeader = ""
strCenter = .PageSetup.CenterHeader
.PageSetup.CenterHeader = ""
strRight = .PageSetup.rightHeader
.PageSetup.rightHeader = ""
.PrintOut From:=1, To:=1
.PageSetup.leftHeader = strLeft
.PageSetup.CenterHeader = strCenter
.PageSetup.rightHeader = strRight
.PrintOut From:=2
End With
Next wsSheet
End Sub

Sub Multi_WS_Looping_2()
'Printing from multiple worksheets looping through
'the individual sheets.
'No header on first printed page of first worksheet.
'Remaining worksheets have headers on all pages.
'Each worksheet page numbering starts at 1.

Dim wsSheet As Worksheet
Dim strLeft As String
Dim strRight As String
Dim strCenter As String
Dim firstSht As Boolean

firstSht = False
For Each wsSheet In Worksheets
With wsSheet
'Save page headers
strLeft = .PageSetup.leftHeader
strCenter = .PageSetup.CenterHeader
strRight = .PageSetup.rightHeader
If firstSht = False Then 'No shts printed yet
'Remove page headers
.PageSetup.leftHeader = ""
.PageSetup.CenterHeader = ""
.PageSetup.rightHeader = ""
firstSht = True
End If
.PrintOut From:=1, To:=1
'Replace page headers
.PageSetup.leftHeader = strLeft
.PageSetup.CenterHeader = strCenter
.PageSetup.rightHeader = strRight
.PrintOut From:=2
End With
Next wsSheet
End Sub

Sub Multi_WS_Select()
'Printing multiple worksheets using multiple
'worksheet select method.
'No header on first printed page.
'This method allows for continuous.
'page numbering for all selected worksheets.

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
Sheets("Sheet1").Activate

With ActiveSheet.PageSetup
'Save page headers
strLeft = .leftHeader
strCenter = .CenterHeader
strRight = .rightHeader
.leftHeader = ""
.CenterHeader = ""
.rightHeader = ""
Sheets(Array("Sheet1", "Sheet2", "Sheet3")) _
.PrintOut From:=1, To:=1
'Replace page headers
.leftHeader = strLeft
.CenterHeader = strCenter
.rightHeader = strRight
Sheets(Array("Sheet1", "Sheet2", "Sheet3")) _
.PrintOut From:=2
End With
End Sub