ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Setting paper size as variable for printing custom views (https://www.excelbanter.com/excel-programming/386189-setting-paper-size-variable-printing-custom-views.html)

ExcelMonkey

Setting paper size as variable for printing custom views
 
I have a macro which prints a custom view as follows in example 1:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

The print settings for this are set using legal paper. I want to give the
user the choice to switch to letter if they want to. I know I can do this in
code by doing the following in example 2:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
With ActiveSheet.PageSetup
.PaperSize = xlPaperLetter
End With

What I want to do is have the user choose via an option box. I want to then
pass the choice to a variable in VBA - say "papersize". How do you pass this
variable to the code I already have without repeating all the code in example
2. Can you integrate into the first line of code with a comma (i.e.
Collate:=TRUE, PaperSize: xlPaperLetter). Or do you need the second line?

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveSheet.PageSetup.PaperSize = xlPaperLetter

Thanks

EM

JLGWhiz

Setting paper size as variable for printing custom views
 
1. make your store your "option box" (control) value in the variable
Set your options to be xlPaperLetter and xlPaperLegal
myVar = Control.Value 'Replace Control with correct object

2. Use the variable in place of the xlPaperLetter
.PaperSize = myVar


"ExcelMonkey" wrote:

I have a macro which prints a custom view as follows in example 1:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

The print settings for this are set using legal paper. I want to give the
user the choice to switch to letter if they want to. I know I can do this in
code by doing the following in example 2:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
With ActiveSheet.PageSetup
.PaperSize = xlPaperLetter
End With

What I want to do is have the user choose via an option box. I want to then
pass the choice to a variable in VBA - say "papersize". How do you pass this
variable to the code I already have without repeating all the code in example
2. Can you integrate into the first line of code with a comma (i.e.
Collate:=TRUE, PaperSize: xlPaperLetter). Or do you need the second line?

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveSheet.PageSetup.PaperSize = xlPaperLetter

Thanks

EM


JLGWhiz

Setting paper size as variable for printing custom views
 
Sorry, I was a little hasty. Item one should read:

1. Store your "option box" (control) value in the variable and
Set your options to be xlPaperLetter and xlPaperLegal:
myVar = Control.Value 'Replace Control with correct object



"ExcelMonkey" wrote:

I have a macro which prints a custom view as follows in example 1:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

The print settings for this are set using legal paper. I want to give the
user the choice to switch to letter if they want to. I know I can do this in
code by doing the following in example 2:

ActiveWorkbook.CustomViews("Main Cover Sheet").Show
With ActiveSheet.PageSetup
.PaperSize = xlPaperLetter
End With

What I want to do is have the user choose via an option box. I want to then
pass the choice to a variable in VBA - say "papersize". How do you pass this
variable to the code I already have without repeating all the code in example
2. Can you integrate into the first line of code with a comma (i.e.
Collate:=TRUE, PaperSize: xlPaperLetter). Or do you need the second line?

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveSheet.PageSetup.PaperSize = xlPaperLetter

Thanks

EM



All times are GMT +1. The time now is 12:11 PM.

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