ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Changing footer programmatically in multiple sheets all at once (https://www.excelbanter.com/excel-programming/333720-changing-footer-programmatically-multiple-sheets-all-once.html)

alan674

Changing footer programmatically in multiple sheets all at once
 
Because of the slow execution of .PageSetup property with specific printers,
especially when done on multiple sheets, because of cumulative time, I would
like to programmatically cahnge that property all at once on all sheets.
As that operation is possible manually if multiple sheets are selected, I
tried to register the macro and it gave following lines:

Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet1 (2)", "Sheet2 (2)")).Select
Sheets("Sheet1").Activate
With ActiveSheet.PageSetup
.LeftFooter = "&12Test 3ème test" & Chr(10) & "C O N F I D E N T I A
L"
End With

Unfortunately, when replayed, the macro only modify the first sheet of the
array.

how to do that programmatically ?

Thanks in advance for your help

keepITcool

Changing footer programmatically in multiple sheets all at once
 
Alan,

macrocommands "old style" to the rescue:
(get a copy of macrofun.hlp from microsoft if you need a reference)

xl4 macro's are LOTS faster for setting multiple print settings.
john green posted a very usefull function too:
http://google.com/groups?selm=VA.000...28c7e5%40mara9


Worksheets.Select
Application.ExecuteExcel4Macro
("PAGE.SETUP(,""&lTextLeft&cTextCenter&rTextright" ")")
ActiveSheet.Select True

or
Dim s$
s = "&L&12Test 3ème test" & vbLf & "C O N F I D E N T I A L"
Worksheets.Select
Application.ExecuteExcel4Macro _
Replace("PAGE.SETUP(,""|foot|"")", "|foot|", s)
ActiveSheet.Select True
End Sub



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


alan674 wrote :

Because of the slow execution of .PageSetup property with specific
printers, especially when done on multiple sheets, because of
cumulative time, I would like to programmatically cahnge that
property all at once on all sheets. As that operation is possible
manually if multiple sheets are selected, I tried to register the
macro and it gave following lines:

Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet1 (2)", "Sheet2
(2)")).Select Sheets("Sheet1").Activate
With ActiveSheet.PageSetup
.LeftFooter = "&12Test 3ème test" & Chr(10) & "C O N F I D E
N T I A L"
End With

Unfortunately, when replayed, the macro only modify the first sheet
of the array.

how to do that programmatically ?

Thanks in advance for your help


Dr. Stephan Kassanke

Changing footer programmatically in multiple sheets all at once
 

"alan674" schrieb im Newsbeitrag
...
Because of the slow execution of .PageSetup property with specific
printers,
especially when done on multiple sheets, because of cumulative time, I
would
like to programmatically cahnge that property all at once on all sheets.
As that operation is possible manually if multiple sheets are selected, I
tried to register the macro and it gave following lines:

Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet1 (2)", "Sheet2
(2)")).Select
Sheets("Sheet1").Activate
With ActiveSheet.PageSetup
.LeftFooter = "&12Test 3ème test" & Chr(10) & "C O N F I D E N T I
A
L"
End With

Unfortunately, when replayed, the macro only modify the first sheet of the
array.

how to do that programmatically ?

Thanks in advance for your help


Hi Alan(?)

you need a loop to access all members of the Worksheets collection

for each mySheet in Worksheets
mySheet.leftfooter = "Whatever..."
next

cheers,
Stephan




All times are GMT +1. The time now is 08:06 PM.

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