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

  • Thread starter Thread starter Monomeeth
  • Start date Start date
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.
 
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
 
Back
Top