Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 542
Default delete a shape

probably a quick and easy question but I cannot seem to figure it out. here
goes

I have a button that inserts a copy of a shape into the active cell when
clicked. what I want to do is delete the existing shape if one exists (in
that activecell) and paste in the new one. here is my code. thanks for any
help. much appreciated.

Private Sub CommandButton2_Click()
'check for existing shape in activecell - If one exists then delete, if not
continue
ActiveSheet.Shapes("Picture 1").Select
Selection.Copy
ActiveCell.Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementTop 10
Selection.ShapeRange.IncrementLeft -2
ActiveCell.Value = 1
ActiveCell.Next.Select
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 56
Default delete a shape

I'm not sure how to find the shape that is in a particular cell
directly. The approach I took is to look at all the shapes on the
sheet, then determine if they are in the active cell. This may not
work if you have too many shapes on the sheet. But if you only have a
few shapes, you can add this to the beginning of the subroutine you
listed above.

Dim shp As Shape, r As Range
For Each shp In ActiveSheet.Shapes
Set r = Intersect(ActiveCell, Range(shp.TopLeftCell,
shp.BottomRightCell))
If Not r Is Nothing Then
shp.Delete
End If
Next shp
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 542
Default delete a shape

thank you for the reply. I DO have a lot of shapes, and was trying to stay
away from looping through all of them. Suprisingly this is faster than I
expected and works great. Thanks!

If anyone knows of a way to do this without looping please share. thanks!

"jasontferrell" wrote:

I'm not sure how to find the shape that is in a particular cell
directly. The approach I took is to look at all the shapes on the
sheet, then determine if they are in the active cell. This may not
work if you have too many shapes on the sheet. But if you only have a
few shapes, you can add this to the beginning of the subroutine you
listed above.

Dim shp As Shape, r As Range
For Each shp In ActiveSheet.Shapes
Set r = Intersect(ActiveCell, Range(shp.TopLeftCell,
shp.BottomRightCell))
If Not r Is Nothing Then
shp.Delete
End If
Next shp

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Check for a shape - then change or delete it if it exists Mona-ABE Excel Programming 2 May 30th 07 05:37 PM
my curser changed from arrow shape to a cross shape???? bj New Users to Excel 1 February 5th 07 02:47 PM
Why can't I delete this shape now? JK Excel Programming 4 July 22nd 05 05:24 PM
Deleting a shape and the cell contents the shape is in. Dave Peterson[_3_] Excel Programming 1 October 9th 03 03:36 PM
Deleting a shape and the cell contents the shape is in. Tom Ogilvy Excel Programming 0 October 9th 03 03:43 AM


All times are GMT +1. The time now is 08:50 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"