Well, I see the problem but I'm not sure what to do about it. I was partly right, before, but not totally.
You're using Application.Caller to determine which shape is selected. But Application.Caller, in this routine, is just a character string representing the shape's name; and since you've given all three shapes the same name, Excel is just picking one of them, perhaps the first one it finds.
What you need is to identify the selected shape uniquely, and apparently Application.Caller isn't going to do that for you. If I knew more about Shapes, I could no doubt suggest something; the problem can't be insoluble, after all. But just now the only thing that occurs to me is to have each of the three shapes call a different routine. Assuming the shapes need similar handling, you can have each routine call a central one with an argument specifying the shape.
|