ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How do I modify this macro to print the currently visible chart? (https://www.excelbanter.com/excel-programming/411356-how-do-i-modify-macro-print-currently-visible-chart.html)

Monomeeth

How do I modify this macro to print the currently visible chart?
 
Okay, I've created a macro to print "Chart 1" in my worksheet. The code is as
follows:

Sub PrintChart()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PlotArea.Select
ActiveChart.ShowWindow = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

However, my worksheet has 45 charts in it and I want to be able to print the
chart I am viewing at the time. Each chart is located in its own area of the
worksheet so that they are the only ones visible at any one time. At present
I have a menu structure with hyperlinks to each of the charts and, at the
bottom of each chart, a macro button to return me back to the menu. I want to
add a second macro button so that users can print the chart that's currently
visible on the screen?

How do I modify the above code to achieve this?

Many thanks,

Joe.
--
If you can measure it, you can improve it!

stefan onken

How do I modify this macro to print the currently visible chart?
 
hi Joe,
you could use ActiveWindow.VisibleRange.PrintOut
that prints everything visible
if you want to print only the chartobject:

For Each cht In ActiveSheet.ChartObjects
If Not Intersect(cht.TopLeftCell, _
ActiveWindow.VisibleRange) Is Nothing Then
cht.Chart.PrintOut
End If
Next

stefan
On 22 Mai, 08:56, Monomeeth
wrote:
Okay, I've created a macro to print "Chart 1" in my worksheet. The code is as
follows:

Sub PrintChart()
* * ActiveSheet.ChartObjects("Chart 1").Activate
* * ActiveChart.PlotArea.Select
* * ActiveChart.ShowWindow = True
* * ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

However, my worksheet has 45 charts in it and I want to be able to print the
chart I am viewing at the time. Each chart is located in its own area of the
worksheet so that they are the only ones visible at any one time. At present
I have a menu structure with hyperlinks to each of the charts and, at the
bottom of each chart, a macro button to return me back to the menu. I want to
add a second macro button so that users can print the chart that's currently
visible on the screen?

How do I modify the above code to achieve this?

Many thanks,

Joe.
--
If you can measure it, you can improve it!




All times are GMT +1. The time now is 01:14 PM.

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