View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jacob Skaria Jacob Skaria is offline
external usenet poster
 
Posts: 8,520
Default Image on userform from picture in a worksheet

Hi Rosen

Use the below procedure to save the picture to a location and then load this
to image control.

Sub Macro()
Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
SavePictureAs "Picture 1", Fname, "GIF"
UserForm1.Image1.Picture = LoadPicture(Fname)
End Sub

Sub SavePictureAs(strPicName As String, strFile As String, strFormat As
String)

Dim wsTemp As Worksheet, chtObj As Chart, pObj As Picture
Dim dblWidth As Double, dblHeight As Double

ActiveSheet.Shapes(strPicName).Select
Set pObj = Selection
dblWidth = pObj.Width: dblHeight = pObj.Height: pObj.Copy

Application.ScreenUpdating = False

Set chtObj = Charts.Add: Set wsTemp = Sheets.Add
chtObj.Location Whe=xlLocationAsObject, Name:=wsTemp.Name
wsTemp.Range("A1").Select

With wsTemp.ChartObjects(1)
.Top = 0
.Left = 0
.Width = dblWidth
.Height = dblHeight
.Activate
.Chart.Paste
.Interior.ColorIndex = 1
.Chart.Export FileName:=strFile, FilterName:=strFormat
End With

Application.DisplayAlerts = False: wsTemp.Delete
Application.DisplayAlerts = True: Application.ScreenUpdating = True

End Sub


If this post helps click Yes
---------------
Jacob Skaria


"CG Rosen" wrote:

Hi Group,

The code below loads a chart from a worksheet into an image in a userform.
Is it at all possible to use the some approach to load a picture inserted in
a
worksheet into the userform image?

Brgds

CG Rosn

Set CurrentChart = Sheets("Sheet1").ChartObjects(1).Chart
'Save chart as GIF
Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=Fname, FilterName:="GIF"

'Show the chart
UserForm1.Image1.Picture = LoadPicture(Fname)

Kill (ThisWorkbook.Path & Application.PathSeparator & "temp.gif")