Using routines to change a number of sheets

B

bestie

Hi,

Im new to the whole Macro VB thing and have been having problems with the
following piece of code. What I am trying to do is make changes to the page
set up of a dozen sheets in a workbook. The sheets I want to change the set
up of are listed of a workbook sheet called Tree and are in cells G9 to G30.

I tried recording a macro selecting these sheets however when I ran it only
the first sheet changed, can someone please help me or advise me of a better
way of doing this..

Thanks

Sub grid()
'
' grid Macro
' Macro recorded 27/07/2006 by Windows User
'

'

Dim i As Long
Dim nRow As Long
Dim Sname$
' selects each sheet name down the list & activates that sheet
i = 9
With Sheets("TREE")
Do While Not IsEmpty(.Cells(i, "G").Value)
Sname$ = Cells(i, "G")
' passes the sheet name to a routine that executes more code on
the named sheet

Sname.Select
.LeftHeader = "&""Arial,Bold ""&12 JUNE" & Chr(10) & ""
.CenterHeader = _
"&""Arial,Regular""&10 Income && Expenditure FY End 2007- Trust Total
"
.RightHeader = "&""Arial,Bold ""&12 YTD To Period 004"
.LeftFooter = "&""Arial,Regular""&10 RSC - Printed 08:40 /
27/07/2006"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.15748031496063)
.RightMargin = Application.InchesToPoints(0.15748031496063)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed

i = i + 1
Loop
End With
 
B

bestie

Zone,

Thanks For that was a silly oversight on my part, however it still doesn't
seem to work I think it may be something to do with the fact I am trying to
change the page set up..... But it seems to snag on the Worksheet(Sname$).
Select line

If you could offer any further help it would be much appreciated.

Thanks


Sub grid()
'
' grid Macro
' Macro recorded 27/07/2006 by Windows User
'

'

Dim i As Long
Dim nRow As Long
Dim Sname$
' selects each sheet name down the list & activates that sheet
i = 9
With Sheets("TREE")
Do While Not IsEmpty(.Cells(i, "G").Value)
Sname$ = Cells(i, "G")
' passes the sheet name to a routine that executes more code on
the named sheet

Worksheet(Sname$).Select

With ActiveSheet.PageSetup
.LeftHeader = "&""Arial,Bold ""&12 JUNE" & Chr(10) & ""
.CenterHeader = _
"&""Arial,Regular""&10 Income && Expenditure FY End 2007- Trust Total
"
.RightHeader = "&""Arial,Bold ""&12 YTD To Period 004"
.LeftFooter = "&""Arial,Regular""&10 RSC - Printed 08:40 /
27/07/2006"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.15748031496063)
.RightMargin = Application.InchesToPoints(0.15748031496063)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed

i = i + 1
Loop
End With



End Sub



bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
[quoted text clipped - 8 lines]

bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
[quoted text clipped - 8 lines]
 
Z

Zone

You left an s off of Worksheets.
Worksheets(Sname$).Select
Try that.
James
Zone,

Thanks For that was a silly oversight on my part, however it still doesn't
seem to work I think it may be something to do with the fact I am trying to
change the page set up..... But it seems to snag on the Worksheet(Sname$).
Select line

If you could offer any further help it would be much appreciated.

Thanks


Sub grid()
'
' grid Macro
' Macro recorded 27/07/2006 by Windows User
'

'

Dim i As Long
Dim nRow As Long
Dim Sname$
' selects each sheet name down the list & activates that sheet
i = 9
With Sheets("TREE")
Do While Not IsEmpty(.Cells(i, "G").Value)
Sname$ = Cells(i, "G")
' passes the sheet name to a routine that executes more code on
the named sheet

Worksheet(Sname$).Select

With ActiveSheet.PageSetup
.LeftHeader = "&""Arial,Bold ""&12 JUNE" & Chr(10) & ""
.CenterHeader = _
"&""Arial,Regular""&10 Income && Expenditure FY End 2007- Trust Total
"
.RightHeader = "&""Arial,Bold ""&12 YTD To Period 004"
.LeftFooter = "&""Arial,Regular""&10 RSC - Printed 08:40 /
27/07/2006"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.15748031496063)
.RightMargin = Application.InchesToPoints(0.15748031496063)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed

i = i + 1
Loop
End With



End Sub



bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
[quoted text clipped - 8 lines]

bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
[quoted text clipped - 8 lines]
 
B

bestie

Sorry James... I'm such a pain but it almost seems to be working.... It is
looking for an End With somewhere but reguardless of where I put it it seems
to be the wrong place can you ammend the code below to include the closing
when statement.

Thanks for all you help.

Sub grid()
'
' grid Macro
' Macro recorded 27/07/2006 by Windows User
'

'

Dim i As Long
Dim nRow As Long
Dim Sname$
' selects each sheet name down the list & activates that sheet
i = 9
With Sheets("TREE")
Do While Not IsEmpty(.Cells(i, "G").Value)
Sname$ = Cells(i, "G")
' passes the sheet name to a routine that executes more code on
the named sheet

Worksheets(Sname$).Select


With ActiveSheet.PageSetup
.LeftHeader = "&""Arial,Bold ""&12 JUNE" & Chr(10) & ""
.CenterHeader = _
"&""Arial,Regular""&10 Income && Expenditure FY End 2007- Trust Total
"
.RightHeader = "&""Arial,Bold ""&12 YTD To Period 004"
.LeftFooter = "&""Arial,Regular""&10 RSC - Printed 08:40 /
27/07/2006"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.15748031496063)
.RightMargin = Application.InchesToPoints(0.15748031496063)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed

i = i + 1

End With

Loop




End Sub
You left an s off of Worksheets.
Worksheets(Sname$).Select
Try that.
James
[quoted text clipped - 90 lines]
 
C

Chip Pearson

You are missing an 'End With' statement. You need an 'End With'
following your 'Loop' statement. If you properly indent your
code, the missing 'End With' is obvious.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



bestie said:
Sorry James... I'm such a pain but it almost seems to be
working.... It is
looking for an End With somewhere but reguardless of where I
put it it seems
to be the wrong place can you ammend the code below to include
the closing
when statement.

Thanks for all you help.

Sub grid()
'
' grid Macro
' Macro recorded 27/07/2006 by Windows User
'

'

Dim i As Long
Dim nRow As Long
Dim Sname$
' selects each sheet name down the list & activates that sheet
i = 9
With Sheets("TREE")
Do While Not IsEmpty(.Cells(i, "G").Value)
Sname$ = Cells(i, "G")
' passes the sheet name to a routine that executes
more code on
the named sheet

Worksheets(Sname$).Select


With ActiveSheet.PageSetup
.LeftHeader = "&""Arial,Bold ""&12 JUNE" & Chr(10) & ""
.CenterHeader = _
"&""Arial,Regular""&10 Income && Expenditure FY End
2007- Trust Total
"
.RightHeader = "&""Arial,Bold ""&12 YTD To Period 004"
.LeftFooter = "&""Arial,Regular""&10 RSC - Printed 08:40
/
27/07/2006"
.CenterFooter = ""
.RightFooter = ""
.LeftMargin =
Application.InchesToPoints(0.15748031496063)
.RightMargin =
Application.InchesToPoints(0.15748031496063)
.TopMargin =
Application.InchesToPoints(0.590551181102362)
.BottomMargin =
Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed

i = i + 1

End With

Loop




End Sub
You left an s off of Worksheets.
Worksheets(Sname$).Select
Try that.
James
[quoted text clipped - 90 lines]
 
Z

Zone

bestie,
You have two With statements, one inside the other. I do not use
nested Withs. Although I understand this can be done (I think), it's
just too confusing. I'd get rid of the first With and just use the
TEST sheet's name to get the info, as I've changed your code. Notice
the changes in the lines after the i=9 line. I haven't tested it. Let
me know if this works.
James
 
B

bestie

James,

Finally got it to work, thanks for all your help.

Sam
bestie,
You have two With statements, one inside the other. I do not use
nested Withs. Although I understand this can be done (I think), it's
just too confusing. I'd get rid of the first With and just use the
TEST sheet's name to get the info, as I've changed your code. Notice
the changes in the lines after the i=9 line. I haven't tested it. Let
me know if this works.
James
Sorry James... I'm such a pain but it almost seems to be working.... It is
looking for an End With somewhere but reguardless of where I put it it seems
[quoted text clipped - 65 lines]
 
Z

Zone

Sam,
Glad to help. I should have noticed that other with statement earlier.
James said:
James,

Finally got it to work, thanks for all your help.

Sam
bestie,
You have two With statements, one inside the other. I do not use
nested Withs. Although I understand this can be done (I think), it's
just too confusing. I'd get rid of the first With and just use the
TEST sheet's name to get the info, as I've changed your code. Notice
the changes in the lines after the i=9 line. I haven't tested it. Let
me know if this works.
James
Sorry James... I'm such a pain but it almost seems to be working.... It is
looking for an End With somewhere but reguardless of where I put it it seems
[quoted text clipped - 65 lines]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top