Création d'un objet shape double traits.
	
	
		Bonjour,
Sauf erreur de ma part, je n'ai pas vu la possibilité de créer un double trait comme dans les bordures par exemple. Dans votre cas, une solution simpliste serait de créer un rectangle.
Sinon, ci-dessous, le genre de code que j'utilise pour créer mes objets. Le principe est de créer deux traits espacés d'une distance à votre convenance et une fois groupés ils pourront prendre les différentes propriétés souhaitées y compris l'angle de rotation.
Le soucis pour réaliser un groupement, c'est qu'il ne faut pas de nom en double. La fonction jointe permet de connaître l'indice du dernier objet de même type existant sur la feuille et d'incrémenter de 1 cet indice.  
	Code:
	
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
   |  
Sub TestCreerUnDoubleTrait()
 
    CreerUnDoubleTrait 10, 6, 200, 6, 5, 0, 2
 
End Sub
 
Sub CreerUnDoubleTrait(ByVal PosH1 As Single, ByVal PosV1 As Single, ByVal PosH2, ByVal PosV2 As Single, ByVal Espacement As Single, ByVal AngleObjet As Single, ByVal EpaisseurTrait As Single)
 
Dim Nom1 As Variant
Dim Nom2 As Variant
Dim ObjetRange As ShapeRange
Dim NbTraitsExistants As Long
 
    NbTraitsExistants = NbObjetsExistants("Trait ")
 
    ActiveSheet.Shapes.AddLine(PosH1, PosV1, PosH2, PosV2).Select
    Selection.Name = "Trait " & CStr(NbTraitsExistants) & "1"
    Nom1 = Selection.Name
 
    ActiveSheet.Shapes.AddLine(PosH1, PosV1 + Espacement, PosH2, PosV2 + Espacement).Select
    Selection.Name = "Trait" & CStr(NbTraitsExistants) & "2"
    Nom2 = Selection.Name
 
    Set ObjetRange = ActiveSheet.Shapes.Range(Array(Nom1, Nom2))
    ObjetRange.Group.Select
 
    With ObjetRange
         .Name = "Trait " & CStr(NbTraitsExistants)
         .ZOrder msoBringToFront
         .Fill.Visible = msoFalse
         .Line.ForeColor.RGB = RGB(204, 0, 0)
         .Line.Transparency = 0
         .Line.Weight = EpaisseurTrait
         .Rotation = AngleObjet
    End With
 
    Set ObjetRange = Nothing
 
End Sub
 
Function NbObjetsExistants(ByVal NomObjet As String) As Long
 
Dim ItemShape As Shape
 
    NbObjetsExistants = 0
    For Each ItemShape In ActiveSheet.Shapes
     If Len(ItemShape.Name) >= Len(NomObjet) Then
        If Mid(ItemShape.Name, 1, Len(NomObjet)) = NomObjet Then
                On Error Resume Next
                NbObjetsExistants = CLng(Mid(ItemShape.Name, Len(NomObjet) + 1))
        End If
     End If
    Next ItemShape
    NbObjetsExistants = NbObjetsExistants + 1
 
End Function | 
 Cordialement.
	 
	
	
	
		Création d'un objet shape double traits.
	
	
		Bonjour,
Merci pour cette proposition. Elle serait super si mes traits n'étaient que droit.
Le problème c'est que le double trait symbolise un fourreau autour d'un cable électrique donc tracé rarement rectiligne.
Le cadre votre proposition pour le moment mais je cherche encore.
Cordialement