print command from command button in userform causes double chart

M

Mike Jamesson

Excel 2007, SP2

I have an activex command button, "CommandButton1" on Sheet1, which issues
command "UserForm1.Show"; in Userform1 I have a command button, "PrintIt"
with the single line "ActiveWorkbook.Sheets("Chart2").PrintPreview" in the
_click event handler. (The same problem occurs with "printout", but this way
I don't waste the paper.)

What happens is, I get the chart in the preview window, but it's as if there
is a smaller version of the chart on top of a larger version. As I
indicated, if I use "...printout" instead of "...printpreview", it prints
this way, too, i.e., with "2 images" of the chart, a smaller superimposed on
a larger.

The same line, "ActiveWorkbook.Sheets("Chart2").PrintPreview" (or
..PrintOut), when attached directly to a command button on the spreadsheet,
works as expected, with only one image of the chart.

Be warned: if you try this with "PrintPreview", it'll hang up the sheet to
the point that only killing it from taskman will get you out.

I can provide a sample if that helps, but there doesn't appear any place to
put an attachment.
 
J

JLGWhiz

It sounds like you have inadvertantly added a second chart to
Sheets("Chart2").
 
M

Mike Jamesson

If that were the case, it would show up whenever I did "print" or
"printpreview", right?

here's the code for the button on the spreadsheet that calls printpreview
itself

Private Sub CommandButton2_Click()
ActiveWorkbook.Sheets("Chart2").PrintPreview
End Sub

and here's the code that calls it from the command button on the userform:

Private Sub cbPrintIt_Click()
ActiveWorkbook.Sheets("Chart2").PrintPreview
End Sub

And that's all the code there is in the entire workbook.

Reproduce it yourself, you'll see.
 
M

Mike Jamesson

More info: In Excel 2007 I saved it as a 2003 xls, then opened it in xl2003;
it printed correctly from both the spreadsheet command button and the
userform command button.
 
L

LOFE

You can always try selecting the Sheet first:

Sheets("Chart2").Select
Activesheet.PrintOut

Maybe you also need to hide the UserForm first:

UserForm1.Hide
 
M

Mike Jamesson

Thanks! Selecting the chart sheet didn't help, but hiding the userform did!
I'd still say it's a bug, though, since this problem does not exist in 2003.

Thanks again.
 

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