To exclude OLE control objects, such as a command button, try...
Code:
[font=Verdana][color=darkblue]Private[/color] [color=darkblue]Sub[/color] CommandButton2_Click()
[color=darkblue]Dim[/color] MyArray() [color=darkblue]As[/color] [color=darkblue]String[/color]
[color=darkblue]Dim[/color] Shp [color=darkblue]As[/color] Shape
[color=darkblue]Dim[/color] Cnt [color=darkblue]As[/color] [color=darkblue]Long[/color]
[color=darkblue]For[/color] [color=darkblue]Each[/color] Shp [color=darkblue]In[/color] Sheets("Sheet2").Shapes
[color=darkblue]If[/color] Shp.Type <> 12 [color=darkblue]Then[/color]
[color=darkblue]ReDim[/color] [color=darkblue]Preserve[/color] MyArray(Cnt)
MyArray(Cnt) = Shp.Name
Cnt = Cnt + 1
[color=darkblue]End[/color] [color=darkblue]If[/color]
[color=darkblue]Next[/color] Shp
Sheets("Sheet2").Shapes.Range(MyArray).Group.Select
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
[/font]
Actually, since the code resides within the worksheet module, try replacing...
with
and
Code:
Sheets("Sheet2").Shapes.Range(MyArray).Group.Select
with
Code:
Me.Shapes.Range(MyArray).Group.Select
This way you won't need to modify the code if the sheet name changes.