ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using routines to change a number of sheets (https://www.excelbanter.com/excel-programming/368521-re-using-routines-change-number-sheets.html)

Zone

Using routines to change a number of sheets
 
bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
bestie wrote:
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



bestie

Using routines to change a number of sheets
 
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




Zone wrote:
bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
Hi,

[quoted text clipped - 8 lines]

Thanks



Zone wrote:
bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
Hi,

[quoted text clipped - 8 lines]

Thanks



Zone

Using routines to change a number of sheets
 
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




Zone wrote:
bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
Hi,

[quoted text clipped - 8 lines]

Thanks



Zone wrote:
bestie,
Change line
Sname.Select
to
Worksheets(Sname$).Select
James
Hi,

[quoted text clipped - 8 lines]

Thanks



bestie

Using routines to change a number of sheets
 
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

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

Zone,

[quoted text clipped - 90 lines]

Thanks



Chip Pearson

Using routines to change a number of sheets
 
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" <u24576@uwe wrote in message news:63dfb30b9b2bb@uwe...
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

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

Zone,

[quoted text clipped - 90 lines]

Thanks





Zone

Using routines to change a number of sheets
 
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

bestie wrote:
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
Do While Not IsEmpty(Worksheets("TREE").Cells(i, "G").Value)
Sname$ = Worksheets("TREE").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



bestie

Using routines to change a number of sheets
 
James,

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

Sam

Zone wrote:
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]

End Sub



Zone

Using routines to change a number of sheets
 
Sam,
Glad to help. I should have noticed that other with statement earlier.
James
bestie wrote:
James,

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

Sam

Zone wrote:
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]

End Sub




All times are GMT +1. The time now is 10:22 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com