Changing what is displayed in an image control programatically

E

Eric Kehr

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
 
D

Doug Glancy

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top