How do I modify this macro to print the currently visible chart?

M

Monomeeth

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.
 
S

stefan onken

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top