Controlling and setting images

  • Thread starter Thread starter Sean Benson
  • Start date Start date
S

Sean Benson

I am trying to control various images in excel, showing a
different image depending on the value in some cells.
However I am having problem dynamically setting the image
object I wish to refer to. For example, the following
will work:

Dim imgtest As Image
Set imgtest = ThisWorkbook.Sheets(1).Image1
Image1.Picture.... etc

But when I try to set Image1 dynamically it won't work:

Dim imgtest as image
set imgtest = ThisWorkbook.sheets(1).Image("Image" &
intImageCount)

where intImageCount is equal to 1.

Also if I try to dim imgtest as shape and set using shape
("Image" & intImageCount) I also have no joy.

Any help appreciated.

Cheers

Sean
 
Sean,

You must have joy! Here is a sample that I used everytime the cursor moved,
I check if it is an a cell that contains the name of an picture (and was in
a certain range called "Images"). Then (the part you really care about) I
used the LOADPICTURE method off of my Image control (named picImage) to
change the picture.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error GoTo Exception

If Not Intersect(Target, Target.Worksheet.ListObjects(1).Range) Is
Nothing Then
With Me.picImage
.Picture = LoadPicture(ThisWorkbook.Path & "\Images\" &
Intersect(Target.EntireRow, Range("Images")).Resize(1, 1).Value)
.Visible = True
End With
Else
Me.picImage.Visible = False
End If
Finally:
Exit Sub

Exception:
Me.picImage.Visible = False
Resume Finally

End Sub

______________

I hope joy is reestablished....
 
Charles

Not quite reached that Eureka moment yet...

The problem is I have a lot of image controls on my form,
named for example picimage, picimage1, picimage2,
picimage3 etc. and yes I could use the loadpicture method
but I would have to use it for every image control and
more importantly under every scenario that these images
needed to change.

I was hoping to loop through these image controls but I
don't seem to be able to declare a variable "picimage &
int" kind of thing.

Any further suggestions?

Cheers

Sean
-----Original Message-----
Sean,

You must have joy! Here is a sample that I used everytime the cursor moved,
I check if it is an a cell that contains the name of an picture (and was in
a certain range called "Images"). Then (the part you really care about) I
used the LOADPICTURE method off of my Image control (named picImage) to
change the picture.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error GoTo Exception

If Not Intersect(Target,
Target.Worksheet.ListObjects(1).Range) Is
 
Back
Top