View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Doug Glancy Doug Glancy is offline
external usenet poster
 
Posts: 770
Default Changing what is displayed in an image control programatically

Eric,

I was just fooling around with this. I changed two things and now it seems
to work:

Change Worksheets("Display").Shapes("Image1").Picture = LoadPicture(a$) to
Worksheets("Display").Image1.Picture = LoadPicture(a$)

and enter the filename in the cell without the double quotes. Just put a
single quote in front (the code inserts double quotes, so I was ending up
with two sets of double quotes).

I'm assuming a$ means it's declared as a string variable. If not, I think
it might need to be, but I'm not sure.

hth,

Doug Glancy

"Eric Kehr" wrote in message
om...
I inserted an image control into an worksheet from the Control toolbox,

and I want
to be able to change the picture programmatically.

If I put "Image1.Picture = LoadPicture("C:\pictures\picture1.jpg") into

the
Image1_click() event, then it loads the picture when I click the image.

However, what I have is a list of possible pictures in the worksheet (i.e.
cell A1 says "C:\pictures\picture1.jpg", A2 says

"C:\pictures\picture2.jpg"
etc).

What I want is to be able to pass a variable, row_no, into a normal
subroutine (i.e. not an event procedure), so that it loads the relevant
picture into the image. But I get an error message.

This is what I have tried:

a$ = Worksheets("Data").Range("a" & row_no).text
Worksheets("Display").Shapes("Image1").Picture = LoadPicture(a$)

What am I doing wrong?

Thanks for any help

Eric Kehr