1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub ResetCnxCircle()
' réinitialise toutes les points de connexions d'une cercle :
' les supprime tous (y compris le centre) , puis recréer le nombre demandé à interval régulier
Dim shp As Visio.Shape
Dim NbDiv, ShapeID, NbCurDiv As Integer
Dim i As Integer
Dim Angle As Double
Const PI = 3.14159265358979
If (ActiveWindow.Selection.Count <> 1) Then Exit Sub
Set shp = Visio.ActiveWindow.Selection(1)
ShapeID = shp.ID
If (ActiveWindow.Selection(1).Master <> "Centre cercle mobile") Then Exit Sub
NbCurDiv = Application.ActiveWindow.Page.Shapes.ItemFromID(ShapeID).RowCount(Visio.visSectionConnectionPts)
NbDiv = InputBox("Entrer le nombre de division (nombre actuel " & NbCurDiv & " )", "Data Entry")
If NbDiv = "" Then NbDiv = "10"
DeleteAllCnxPt (ShapeID)
For i = 1 To NbDiv
Angle = 2 * PI * i / NbDiv
If DebugActif Then Debug.Print ("créer connexion pour angle " & Angle)
AddCnx Cos(Angle), Sin(Angle), ShapeID
Next i
End Sub |
Partager