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

I copy data from a webpage to Excel, then clear the shapes and icons off
using this loop. I know, it's so lame and inefficient, especially as there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the redundant
work that the above loop goes through.

Can you help?

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default Loop to delete shapes

Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons off
using this loop. I know, it's so lame and inefficient, especially as there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the redundant
work that the above loop goes through.

Can you help?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default Loop to delete shapes

Hi Jacob

Your code will not select all shapes types
Maybe no problem for the OP but use this if you want to delete them all (also working OK in 2007)

Sub Shapes1()
'Delete all Objects except Comments
On Error Resume Next
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
End Sub

Use this to delete comments

Sub Comments()
'This will delete all comments
ActiveSheet.Cells.ClearComments
End Sub


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Jacob Skaria" wrote in message ...
Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons off
using this loop. I know, it's so lame and inefficient, especially as there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the redundant
work that the above loop goes through.

Can you help?

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default Loop to delete shapes

Thanks Ron..

Daniel, if you are worried about the number of iterations you can get the
..count property to get the number; as in below example

On Error Resume Next
Dim i as Integer
For i = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(i).Delete
Next i


Just to add on
--
If this post helps click Yes
---------------
Jacob Skaria


"Ron de Bruin" wrote:

Hi Jacob

Your code will not select all shapes types
Maybe no problem for the OP but use this if you want to delete them all (also working OK in 2007)

Sub Shapes1()
'Delete all Objects except Comments
On Error Resume Next
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
End Sub

Use this to delete comments

Sub Comments()
'This will delete all comments
ActiveSheet.Cells.ClearComments
End Sub


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Jacob Skaria" wrote in message ...
Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons off
using this loop. I know, it's so lame and inefficient, especially as there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the redundant
work that the above loop goes through.

Can you help?


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 110
Default Loop to delete shapes

Jacob, Ron,

Thanks very much for your replies - very helpful (not just for my immediate
problem, but for related issues).

And Don, my apologies, I normally do first search for a solution to avoid
duplication, but this time I didn't.

regards
Daniel

"Jacob Skaria" wrote:

Thanks Ron..

Daniel, if you are worried about the number of iterations you can get the
.count property to get the number; as in below example

On Error Resume Next
Dim i as Integer
For i = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(i).Delete
Next i


Just to add on
--
If this post helps click Yes
---------------
Jacob Skaria


"Ron de Bruin" wrote:

Hi Jacob

Your code will not select all shapes types
Maybe no problem for the OP but use this if you want to delete them all (also working OK in 2007)

Sub Shapes1()
'Delete all Objects except Comments
On Error Resume Next
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
End Sub

Use this to delete comments

Sub Comments()
'This will delete all comments
ActiveSheet.Cells.ClearComments
End Sub


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Jacob Skaria" wrote in message ...
Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons off
using this loop. I know, it's so lame and inefficient, especially as there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the redundant
work that the above loop goes through.

Can you help?




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default Loop to delete shapes

My preference for iteration of this type is to use the For Each construct...

Dim S As Shape
For Each S In ActiveSheet.Shapes
S.Delete
Next

--
Rick (MVP - Excel)


"Jacob Skaria" wrote in message
...
Thanks Ron..

Daniel, if you are worried about the number of iterations you can get the
.count property to get the number; as in below example

On Error Resume Next
Dim i as Integer
For i = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(i).Delete
Next i


Just to add on
--
If this post helps click Yes
---------------
Jacob Skaria


"Ron de Bruin" wrote:

Hi Jacob

Your code will not select all shapes types
Maybe no problem for the OP but use this if you want to delete them all
(also working OK in 2007)

Sub Shapes1()
'Delete all Objects except Comments
On Error Resume Next
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
End Sub

Use this to delete comments

Sub Comments()
'This will delete all comments
ActiveSheet.Cells.ClearComments
End Sub


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Jacob Skaria" wrote in message
...
Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons
off
using this loop. I know, it's so lame and inefficient, especially as
there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the
redundant
work that the above loop goes through.

Can you help?



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default Loop to delete shapes

Not use that Rick

See why on this page
http://www.rondebruin.nl/controlsobjectsworksheet.htm

Part of the webpage:

Not use code like below because it is possible that

It will delete the AutoFilter dropdowns
It will delete the DataValidation(List option) dropdowns
Excel crash if there are comments on the sheet

Note: Not every Excel versions have all problems.

Sub NotUseThisMacro()
'Loop through the Shapes collection
Dim myshape As Shape
For Each myshape In ActiveSheet.Shapes
myshape.Delete
Next myshape
End Sub

Good night


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Rick Rothstein" wrote in message ...
My preference for iteration of this type is to use the For Each construct...

Dim S As Shape
For Each S In ActiveSheet.Shapes
S.Delete
Next

--
Rick (MVP - Excel)


"Jacob Skaria" wrote in message
...
Thanks Ron..

Daniel, if you are worried about the number of iterations you can get the
.count property to get the number; as in below example

On Error Resume Next
Dim i as Integer
For i = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(i).Delete
Next i


Just to add on
--
If this post helps click Yes
---------------
Jacob Skaria


"Ron de Bruin" wrote:

Hi Jacob

Your code will not select all shapes types
Maybe no problem for the OP but use this if you want to delete them all
(also working OK in 2007)

Sub Shapes1()
'Delete all Objects except Comments
On Error Resume Next
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
End Sub

Use this to delete comments

Sub Comments()
'This will delete all comments
ActiveSheet.Cells.ClearComments
End Sub


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm




"Jacob Skaria" wrote in message
...
Try

Activesheet.shapes.selectall
Selection.delete

If this post helps click Yes
---------------
Jacob Skaria


"Daniel Bonallack" wrote:

I copy data from a webpage to Excel, then clear the shapes and icons
off
using this loop. I know, it's so lame and inefficient, especially as
there
are usually only 30 or so shapes to delete.

On Error Resume Next
For i = 1 To 2000
ActiveSheet.Shapes("Picture " & i).Select
Selection.Delete
Next i

What I would like is a loop that deletes each image without the
redundant
work that the above loop goes through.

Can you help?



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
Trying to loop through all shapes on multiple worksheets and change color [email protected] Excel Programming 1 April 14th 06 12:25 AM
Delete grouped shapes? Dr.Ile[_13_] Excel Programming 2 March 30th 06 08:47 AM
Delete Shapes acces[_7_] Excel Programming 1 May 7th 04 06:51 PM
How can I loop to find the grouped shapes count David Cuthill Excel Programming 3 January 26th 04 08:22 PM
PROB: Grouping Shapes With An Array Loop Boicie Excel Programming 2 January 14th 04 08:21 PM


All times are GMT +1. The time now is 01:18 AM.

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

About Us

"It's about Microsoft Excel"