Richard,
How about another approach?
What you could do is to load all of the pictures up front, and [park them
off-view. Each command button would move
back to the park, and then bring in the required one.
Dim sh As Shape
Fr Each sh In ActiveSheet.Shapes
'first make sure all parked
sh.Left = 5000
Next sh
With ActiveSheet.Shapes("picCB1")
.Left = 100
.Top = 100
End With
and similar code for each CB.
--
HTH
Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
"Richard1284 " wrote in message
...
Hi all,
Thanks for your help so far however I am still stumped.
I have 4 cmdButtons, As each one is clicked I want a new picture to
come up(this is ok) HOWEVER i also want to delete the old picture
already on the sheet(this is my problem). I have declared some globals
and have tried to store the active sheet Picture in a cell, Have a look
at my code....it is almost there but not quite, any ideas on how to
improve this.....
---------------------------------------------------
Public myPic As Picture '
Public sPic As String
Sub InsertPic1()
sPic = Sheets("Main").Cells(100, 6).Value
If sPic < "" Then
Set myPic = ActiveSheet.Pictures(sPic)
myPic.Delete
End If
sPic = ("F:\Dss\ass\Arran1.jpg")
Sheets("Main").Select
Range("D16").Select
Set myPic = ActiveSheet.Pictures.Insert(sPic)
Sheets("Main").Cells(100, 6).Value = sPic
---
Message posted from http://www.ExcelForum.com/