Bonjour j'ai fais un Post dans un autre sujet mais je crois que j'arrive à mettre mon problème dans le sujet VBA.
Je ne réussi pas à récupérer une information d'un Tableau qui est déclaré Objet. J'ai mis un Espion sur mon Tableau. Je dois récupérer la valeur EndPoint(0)
À noter que je réussi à récupérer les information qui sont dans le premiere branche du Tableau (Angle - Color) mais se qui se retrouve dans la seconde branche (EndPoint(0) - EndPoint(1) - EndPoint(2)) je n'y arrive pas.
tblsel(i)
Angle
Color
EndPoint
EndPoint(0)
EndPoint(1)
EndPoint(2)
...
si je code
msgbox tblsel(i).Angle = 4.052
msgbox tblsel(i).Color= 2552
msgbox tblsel(i).EndPoint(0) = Erreur
Erreur d'exécution 451
La procédure Property Let n'est pas définie et la Procédure Property Get n'a pas renvoyé un objet
Cette erreur vient de ce code
For i = 0 To Cpt1 - 1
Set tblsel(i) = ssetobj.Item(i)
MsgBox tblsel(i).EndPoint(0)
Next
Alors Voila je mets le code si ca peut aider quelqu'un
SÉLECTIONNER DES LIGNES DANS AUTOCAD POUR POUVOIR RÉCUPÉRER LES COORDONNÉES DE CES LIGNES
Le code n'est pas terminé mais peux donner une idée...
Dim Obj1 As Object
Dim BaSelect As Variant
Dim Pt1 As Variant
Dim Entite(0) As Object
Dim RegionSel As Variant
Dim Resultat As Double
Dim Cpt1, I As Integer
Dim ssetobj As AcadSelectionSet
'If ssetobj with the name mentioned above already exists - delete it
For Each ssetobj In ActiveDocument.SelectionSets
If ssetobj.Name = "1" Then
ssetobj.Delete
Exit For
End If
Next ssetobj
'aAd new ssetobj
Set ssetobj = ActiveDocument.SelectionSets.Add("1")
Call ssetobj.SelectOnScreen
'Si aucun Objet sélectionné
If ssetobj.count = 0 Then
MsgBox "You have not selected any object.", , "Error"
ssetobj.Delete
Exit Sub
End If
Dim AcadObj As Variant
Dim StartPoint As Variant
Dim EndPoint As Variant
For Each AcadObj In ssetobj
Select Case AcadObj.ObjectName
Case "AcDbLine"
StartPoint = AcadObj.StartPoint
EndPoint = AcadObj.EndPoint
MsgBox StartPoint(0) & " " & StartPoint(1)
End Select
Next AcadObj
J'ai trouvé un autre code qui me montre bel et bien que le StartPoint et le EndPoint existe. Si je fais un Espion je vois leur valeur.
Voici le code que j'utilise
Dim StartPoint As Variant
Dim EndPoint As Variant
For Each AcadObj In ssetobj
Select Case AcadObj.ObjectName
Case "AcDbLine"
StartPoint = AcadObj.StartPoint
EndPoint = AcadObj.EndPoint
MsgBox StartPoint & " " & EndPoint
End Select
Next AcadObj
Si je mets un espion sur cette "variable" - AcadObj.StartPoint