ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How do i read Selection.Shapes.Range(Array(i)? (https://www.excelbanter.com/excel-programming/339114-how-do-i-read-selection-shapes-range-array-i.html)

Harry

How do i read Selection.Shapes.Range(Array(i)?
 
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

Norman Jones

How do i read Selection.Shapes.Range(Array(i)?
 
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




Harry

How do i read Selection.Shapes.Range(Array(i)?
 
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






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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com