Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 32
Default Dynanic Print Range

Having a small problem with setting up a dynamic print range. I have defined
a range by clicking insertnamedefine. Named range is PrintArea and below
is the formula:

=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),4)

I have also inserted the following vba code into the workbook:

Private Sub Workbook_BeforePrint (Cancel As Boolean)
With ActiveSheet
..PageSetup.PrintArea = .Range(.Range("A1"),
..Range("PrintArea").Cells(.Range("PrintArea").Cel ls.Count)).Address


This setup does exactly what I need with a workbook with only 1 worksheet.
However, I need help on adjusting this to work with a workbook with multiple
worksheets. Can the dynamic range be defined in vba using ActiveSheet, and
if so, what would that look like? I'm looking for something other than a
dynamic print range for every worksheet.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default Dynanic Print Range

So long as you are only using the english version of XL you do not need the
code. XL stores the print area as a locally defined named range called
Print_Area. If your dynamic named range was changed to include the under
score in the name and declared local to the sheet then you would get a
dynamic print area. IYou would still need to create a dynamic named range
formula for each sheet byt that is generally not too bad to do. You could
even do it via code if there were enough sheets to warrant the effort.
--
HTH...

Jim Thomlinson


"hurlbut777" wrote:

Having a small problem with setting up a dynamic print range. I have defined
a range by clicking insertnamedefine. Named range is PrintArea and below
is the formula:

=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),4)

I have also inserted the following vba code into the workbook:

Private Sub Workbook_BeforePrint (Cancel As Boolean)
With ActiveSheet
.PageSetup.PrintArea = .Range(.Range("A1"),
.Range("PrintArea").Cells(.Range("PrintArea").Cell s.Count)).Address


This setup does exactly what I need with a workbook with only 1 worksheet.
However, I need help on adjusting this to work with a workbook with multiple
worksheets. Can the dynamic range be defined in vba using ActiveSheet, and
if so, what would that look like? I'm looking for something other than a
dynamic print range for every worksheet.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Dynanic Print Range

Have you defined Name (PrintArea) include the Sht Name like code below. You
don't need the period in front of the named Range unless you have more than
one workbook opened.

either
Range("PrintArea")
or
workbooks("Book1.xls").Sheets("Sheet1").Range("Pri ntArea")

A Named Range is a weird item. It is a worksheet object but is really a
workbook object. If you look at the named ranges on the worksheet menu
Insert - Names you see the Sheetname but the name only returns the range
without the sheet. You can only get the sheet name by using RefersTo.

Sheet1PArea
Sheet2PArea
Sheet3PArea

The in your code use the sheet name to get the area for each sheet

for each sht in sheets
PrintArea = Sht.Name & "PArea"
.PageSetup.PrintArea = Range(.Range("A1"), _
Range(PrintRange).Cells(Range(PriontArea).Cells.Co unt)).Address
next Sht



"hurlbut777" wrote:

Having a small problem with setting up a dynamic print range. I have defined
a range by clicking insertnamedefine. Named range is PrintArea and below
is the formula:

=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),4)

I have also inserted the following vba code into the workbook:

Private Sub Workbook_BeforePrint (Cancel As Boolean)
With ActiveSheet
.PageSetup.PrintArea = .Range(.Range("A1"),
.Range("PrintArea").Cells(.Range("PrintArea").Cell s.Count)).Address


This setup does exactly what I need with a workbook with only 1 worksheet.
However, I need help on adjusting this to work with a workbook with multiple
worksheets. Can the dynamic range be defined in vba using ActiveSheet, and
if so, what would that look like? I'm looking for something other than a
dynamic print range for every worksheet.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
print range won't print Cheri K Excel Discussion (Misc queries) 2 February 25th 10 11:49 PM
Dynanic Worksheet functions Les G Excel Worksheet Functions 16 November 11th 07 06:46 AM
Print Blank Pgs - Preview margins outside print range dsm Excel Discussion (Misc queries) 0 October 25th 06 06:17 PM
Can you get the range reference for each page in a worksheet print range? Crosby Excel Programming 3 April 12th 05 06:06 PM
Excel 2000 VBA - Set Print Range in dynamic range sub_pop[_5_] Excel Programming 2 July 27th 04 08:01 PM


All times are GMT +1. The time now is 04:42 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"