ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Setting print area (https://www.excelbanter.com/excel-programming/424134-setting-print-area.html)

richzip

Setting print area
 
I am trying to set up a macro that sets the print area. I tried getting the
code by using "record new macro", and copying my keystrokes. I highlighted
the area I want to print, and recorded the keystrokes from there.

The macro came out to be:

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$35"

However, the actual area will vary depending on the worksheet. How can I
change this code to make the area = only what I have highlighted at the time
I start the macro?

Mike H

Setting print area
 
Hi,

Try this

ActiveSheet.PageSetup.PrintArea = Selection.Address

Mike

"richzip" wrote:

I am trying to set up a macro that sets the print area. I tried getting the
code by using "record new macro", and copying my keystrokes. I highlighted
the area I want to print, and recorded the keystrokes from there.

The macro came out to be:

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$35"

However, the actual area will vary depending on the worksheet. How can I
change this code to make the area = only what I have highlighted at the time
I start the macro?


Hong Quach

Setting print area
 
Hi Richzip,

You can add 2 lines to your code to retrieve the current selection address
and modify your code to reference the retrieved selection address.

Dim rg As Range ' variable to hold the current selection
Set rg = Selection ' get the range of the current selection
ActiveSheet.PageSetup.PrintArea = rg.Address

'Complete working code:
Sub SetPrintArea()
'Make sure selection is a Range object
If TypeName(Selection) = "Range" Then
'Create rg variable and store the current selection address
Dim rg As Range
Set rg = Selection
'Set the print area
ActiveSheet.PageSetup.PrintArea = rg.Address
Else
MsgBox "The current selection cannot be use to set as print area."
End If
End Sub

Hong Quach

"richzip" wrote:

I am trying to set up a macro that sets the print area. I tried getting the
code by using "record new macro", and copying my keystrokes. I highlighted
the area I want to print, and recorded the keystrokes from there.

The macro came out to be:

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$35"

However, the actual area will vary depending on the worksheet. How can I
change this code to make the area = only what I have highlighted at the time
I start the macro?


JLGWhiz

Setting print area
 
Unless you are going to use the print range for other purposes, it is not
necessary to set it if you only want to print the selection. You can just
use:

Selection.PrintOUt

It will only print the selected range.

"richzip" wrote:

I am trying to set up a macro that sets the print area. I tried getting the
code by using "record new macro", and copying my keystrokes. I highlighted
the area I want to print, and recorded the keystrokes from there.

The macro came out to be:

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$35"

However, the actual area will vary depending on the worksheet. How can I
change this code to make the area = only what I have highlighted at the time
I start the macro?



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

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