View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default Export from EXcel to jpg with 2007

It would be very helpful if you would explain what you are trying to
accomplish and why it does work. What errors are you getting?

The Export method of a Chart works in 2007 as it did in earlier
version:

Dim ChartObj As ChartObject
Set ChartObj = Worksheets("Sheet1").ChartObjects(1)
ChartObj.Chart.Export "D:\Chart1.jpg"

In your code, you have
Set picCopy = Selection

What is selected when you Set it to picCopy?

Don't post messages with something like "it doesn't work". If you
expect the readers to take the time to read, decypher, and find a
solution to your question, you should put in the effort to fully
explain in detail what you need, what should happen that doesn't, or
what doesn't happen that should. Gold stars for details.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional,
Excel, 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com





On Tue, 20 Apr 2010 10:24:06 -0700, Pops Jackson
wrote:

Tom Ogilvy posted the following code some time back and it works wonderfully
in Excel 2003 but, of course, encounters problems in 2007. Can anyone give
suggestions for bringing it up to date for 2007?

Sub ExportPicAsJpg()
Dim chTemp As Chart
Dim picCopy As Picture
Dim dWidth As Double
Dim dHeight As Double
Dim shNew As Worksheet

Set picCopy = Selection
Set chTemp = Charts.Add
Set shNew = Sheets.Add

dWidth = picCopy.Width
dHeight = picCopy.Height

Application.ScreenUpdating = False
With chTemp

.SetSourceData Source:=Sheets("Sheet1").Range("FA16383")
.Location Whe=xlLocationAsObject, Name:=shNew.Name

With shNew.ChartObjects(1)

.Width = dWidth + 2
.Height = dHeight + 2
.Top = 0
.Left = 0
Range("A1").Select
picCopy.Copy
.Activate
ActiveChart.Paste
.Interior.ColorIndex = 1
ActiveChart.Export "c:\TempPic.JPG", "jpg"

End With

End With

Application.DisplayAlerts = False
shNew.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Thanks for any help given,