Print problems w/ charts excel 2003/2007

D

dgold82

I just posted my strange situation in the general questions, but now I am
trying to code my way out of this using VBA. My problem is basically that my
charts aren't printing correctly when I use excel 2003. Every time I hit
print a different set of charts on my worksheet print incorrectly (the charts
look garbled and condensed). I have found that if I click on print preview on
each chart on my worksheet and then click on print they all work fine.

Therefore, I recorded the following (ugly) macro:

Sub PrintCompare()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.Visible = False
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.Visible = False
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.Visible = False
Range("a1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

My only problem now is that I have to close each print preview before it
finally gets to the print command towards the bottom. If I can get this to
cycle through all the charts without needing to close print preview each time
that would solve my problem. Is there a way to select all the charts and
print preview them all together?

Ideas would be greatly appreciated!
 
S

Smallweed

Just a thought but have you looked at View, Sized with Window? Charts look
squashed if it's on the wrong setting as I remember
 
D

dgold82

OK, so I messed around a bit more and added a command to send the ESC button.
My only problem is that no matter where I try and put the ESC command there
is always 1 print preview showing. I want them all to clear and go straight
to the final print command. Here is my code:

Sub PrintCompare()

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 5").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 22").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 6").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview
Application.SendKeys "{ESC}"

ActiveSheet.ChartObjects("Chart 21").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintPreview

Range("a1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

End Sub


How can I get ALL the print previews to close and go straight to the print
command. Remember, I need to cycle through a single print preview for each
chart before I print due to rendering problems.

Thanks!
 

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