ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Changing what is displayed in an image control programatically (https://www.excelbanter.com/excel-programming/296398-changing-what-displayed-image-control-programatically.html)

Eric Kehr

Changing what is displayed in an image control programatically
 
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

Doug Glancy

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




Natalie Kehr

Changing what is displayed in an image control programatically
 




*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!


All times are GMT +1. The time now is 12:54 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com