View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
K Dales[_2_] K Dales[_2_] is offline
external usenet poster
 
Posts: 1,163
Default VBA to display image on a form - image is defined in Range Nam

My apologies, Tan - I misinterpreted your post to mean the file path was
stored in the range, not the actual picture. You can do the reverse - find
the reference to the picture object, by code like this:

Public Function PictureInRange(SearchRange As Range) As Object
Dim FoundPic As Object

For Each FoundPic In SearchRange.Parent.Pictures
If Not Intersect(FoundPic.TopLeftCell, SearchRange) Is Nothing Then _
Set PictureInRange = FoundPic
Next FoundPic

End Function

However, making use of the picture might be difficult. It can be copied and
pasted elsewhere on a worksheet, but I don't know any easy way to get it onto
a form (as far as I know you cannot paste into a userform image control.
--
- K Dales


"Tan" wrote:

Dales

The picture is actually in the spreadsheet, and has a range name defined
with it. I would not want to store the picture in a separate file. Will
your code works to access to picture from based on the range name?

Regards
"K Dales" wrote:

Sub InsertPicture(PicturePath as String, PlacementCell as Range)
' PicturePath will be the file path (from your range)
' PlacementCell is the cell where the top left of the picture will go

Dim NewPic As Object

Set NewPic = PlacementCell.Parent.Pictures.Insert(PicturePath)
NewPic.Name = "Logo" ' allows you to easily refer to the picture in the
future
' (i.e. ActiveSheet.Pictures("Logo"))
NewPic.Top = PlacementCell.Top
NewPic.Left = PlacementCell.Left

End Sub
--
- K Dales


"Tan" wrote:

I have a picture stored in a range name in an excel spreadsheet. I need a
VBA to display the logo on a form. How can I go about doing it? In the
form, do I define it as an image? If so, then how do I point the image to
the range name?