copying all charts as enhanced metafiles

  • Thread starter Paste charts as enchanced metafile
  • Start date
P

Paste charts as enchanced metafile

I have a sheet with a number of charts. I want to copy them to another sheet
as a single picture. The following code works, but the picture loses
resolution.

'Copies graphs as picture
Sheets("Graphs").Select
Range("A1:R51").Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Range("A1").Select


'Pastes graph picture to summary sheet
Sheets("Static Summary Sheet").Select
Range("A1").Select
ActiveSheet.Paste

I have replaced the code with:

'Copies graphs as picture
Sheets("Graphs").Select
ActiveSheet.Shapes.SelectAll
Selection.Copy
Range("A1").Select


'Pastes graph picture to summary sheet
Sheets("Static Summary Sheet").Select
Range("D5").Select
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)",
Link:=False _
, DisplayAsIcon:=False
Selection.Top = 69.75
Selection.Left = 37.5

Now I get an error in the pastespecial line "PasteSpecial method of
Worksheet class failed.

Any ideas?
 
P

Paste charts as enchanced metafile

I should add the loss of resolution is in Excel2007 and the error in the
second code is also in Excel2007. Both methods work fine in Excel2003.
 
J

Joel

I added two picture to a worksheet and used your code without any problems.
I'm using excel 2003.

Try the same thing. Add two pictures to a blank workbook and see if it
works. the code is good. Are both your sheets worksheets? You called one a
chart so was it created by adding a chart?
 
P

Paste charts as enchanced metafile

Joel,

The code works fine in 2003, not in 2007.

Joel said:
I added two picture to a worksheet and used your code without any problems.
I'm using excel 2003.

Try the same thing. Add two pictures to a blank workbook and see if it
works. the code is good. Are both your sheets worksheets? You called one a
chart so was it created by adding a chart?
 
P

Paste charts as enchanced metafile

Peter,

..Copy works for a single chart. Any way to select all the charts and paste
them all at once?
 
P

Peter T

What a palava!

Sub test()
Dim i As Long
Dim arr()
Dim wsSource As Worksheet, wsDest As Worksheet

Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")

wsSource.Activate
With wsSource.ChartObjects
ReDim arr(1 To .Count)

For i = 1 To UBound(arr)
arr(i) = .Item(i).ZOrder
Next
End With

wsSource.DrawingObjects(arr).Select
wsSource.DrawingObjects(arr).Copy

wsDest.Activate
wsDest.Range("B2").Activate
wsDest.PasteSpecial Format:="Picture (Enhanced Metafile)"

End Sub

Lots of select/activate and other stuff in the above I'd normally be
advising people not to do - but if needs must for Excel 2007 !

Regards,
Peter T

"Paste charts as enchanced metafile"
 
P

Paste charts as enchanced metafile

Thanks for your help.

Peter T said:
What a palava!

Sub test()
Dim i As Long
Dim arr()
Dim wsSource As Worksheet, wsDest As Worksheet

Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")

wsSource.Activate
With wsSource.ChartObjects
ReDim arr(1 To .Count)

For i = 1 To UBound(arr)
arr(i) = .Item(i).ZOrder
Next
End With

wsSource.DrawingObjects(arr).Select
wsSource.DrawingObjects(arr).Copy

wsDest.Activate
wsDest.Range("B2").Activate
wsDest.PasteSpecial Format:="Picture (Enhanced Metafile)"

End Sub

Lots of select/activate and other stuff in the above I'd normally be
advising people not to do - but if needs must for Excel 2007 !

Regards,
Peter T

"Paste charts as enchanced metafile"
 

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