Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm writing a macro that will rearrange a group of selected drawn rectangles.
I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Harry,
The following worked for me: '================== Public Sub Tester2() Dim mr() Dim i As Long Dim num As Long Dim sStr As String Dim myShapeRange As ShapeRange Set myShapeRange = Selection.ShapeRange With myShapeRange num = .Count ReDim mr(1 To num) For i = 1 To num sStr = .Item(i).Name mr(i) = Val(sStr) Next i End With End Sub '<<================== --- Regards, Norman "Harry" wrote in message ... I'm writing a macro that will rearrange a group of selected drawn rectangles. I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Norman,
Thanks a million, it works like a charm!! -- Best Regards, Harry "Norman Jones" wrote: Hi Harry, The following worked for me: '================== Public Sub Tester2() Dim mr() Dim i As Long Dim num As Long Dim sStr As String Dim myShapeRange As ShapeRange Set myShapeRange = Selection.ShapeRange With myShapeRange num = .Count ReDim mr(1 To num) For i = 1 To num sStr = .Item(i).Name mr(i) = Val(sStr) Next i End With End Sub '<<================== --- Regards, Norman "Harry" wrote in message ... I'm writing a macro that will rearrange a group of selected drawn rectangles. I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Shapes Range Array | Excel Discussion (Misc queries) | |||
Programmatically add shapes to a selection | Excel Programming | |||
Programmatically add shapes to a selection | Excel Programming | |||
Read a range to an array | Excel Programming | |||
Read Range Data into Array | Excel Programming |