Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment récupérer les coordonnées des noeuds

3 réponses
Avatar
Tatanka
Bonsoir, Bonsoir,

J'ai dessiné une forme libre et j'aimerais récupérer les
coordonnées (Left, Top) de chacun des noeuds de cette forme.
Comment faire ?

Marci beaucoup,

Sarge

3 réponses

Avatar
papou
Bonjour Serge
Les coordonnées Abscisse et Ordonnée en points ça te convient ?

Dim NbNds&
With Feuil.Shapes(1)
NbNds = .Nodes.Count
For i = 1 To NbNds
MsgBox "Nombre de noeuds = " & NbNds _
& vbLf & "Noeud " & i & vbLf _
& "Abscisse = " & .Nodes(i).Points(1, 1) & vbLf _
& "Ordonnée = " & .Nodes(i).Points(1, 2)
Next i
End With

Cordialement
Pascal


"Tatanka" a écrit dans le message de news:
%
Bonsoir, Bonsoir,

J'ai dessiné une forme libre et j'aimerais récupérer les
coordonnées (Left, Top) de chacun des noeuds de cette forme.
Comment faire ?

Marci beaucoup,

Sarge



Avatar
Tatanka
Salut Pascal,

Ta macro me renvoie le message d'erreur suivant :

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é d'objet.

Chez toi, ça fonctionne ?

Par contre j'ai enfin réussi à obtenir ce que je voulais avec cette macro :

Sub Noeuds_Forme_Libre()
Dim Shp As Shape
Dim Sn As ShapeNodes
Dim Nbn%, i%
Set Shp = ActiveSheet.Shapes("libre")
Set Sn = Shp.Nodes
[a1] = "Noeud"
[b1] = "Left"
[c1] = "Top"
Nbn = Sn.Count
For i = 1 To Nbn
Cells(i + 1, 1) = i
Cells(i + 1, 2) = Sn.Item(i).Points(1, 1)
Cells(i + 1, 3) = Sn.Item(i).Points(1, 2)
Next i
End Sub

Serge


"papou" a écrit dans le message de news:
Bonjour Serge
Les coordonnées Abscisse et Ordonnée en points ça te convient ?

Dim NbNds&
With Feuil.Shapes(1)
NbNds = .Nodes.Count
For i = 1 To NbNds
MsgBox "Nombre de noeuds = " & NbNds _
& vbLf & "Noeud " & i & vbLf _
& "Abscisse = " & .Nodes(i).Points(1, 1) & vbLf _
& "Ordonnée = " & .Nodes(i).Points(1, 2)
Next i
End With

Cordialement
Pascal


"Tatanka" a écrit dans le message de news: %
Bonsoir, Bonsoir,

J'ai dessiné une forme libre et j'aimerais récupérer les
coordonnées (Left, Top) de chacun des noeuds de cette forme.
Comment faire ?

Marci beaucoup,

Sarge







Avatar
papou
Bonjour Serge
Oui bien sûr qu'elle fonctionne ;-)
En tout cas je peux préciser elle fonctionne sur Excel 2003 avec un objet
dessiné à partir de l'outil forme libre de la barre d'outils Formes
automatiques-Lignes.
Il faut aussi également modifier le Feuil.Shapes par une variable valide
pour toi.

Cordialement
Pascal

"Tatanka" a écrit dans le message de news:

Salut Pascal,

Ta macro me renvoie le message d'erreur suivant :

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é d'objet.

Chez toi, ça fonctionne ?

Par contre j'ai enfin réussi à obtenir ce que je voulais avec cette macro
:

Sub Noeuds_Forme_Libre()
Dim Shp As Shape
Dim Sn As ShapeNodes
Dim Nbn%, i%
Set Shp = ActiveSheet.Shapes("libre")
Set Sn = Shp.Nodes
[a1] = "Noeud"
[b1] = "Left"
[c1] = "Top"
Nbn = Sn.Count
For i = 1 To Nbn
Cells(i + 1, 1) = i
Cells(i + 1, 2) = Sn.Item(i).Points(1, 1)
Cells(i + 1, 3) = Sn.Item(i).Points(1, 2)
Next i
End Sub

Serge


"papou" a écrit dans le
message de news:
Bonjour Serge
Les coordonnées Abscisse et Ordonnée en points ça te convient ?

Dim NbNds&
With Feuil.Shapes(1)
NbNds = .Nodes.Count
For i = 1 To NbNds
MsgBox "Nombre de noeuds = " & NbNds _
& vbLf & "Noeud " & i & vbLf _
& "Abscisse = " & .Nodes(i).Points(1, 1) & vbLf _
& "Ordonnée = " & .Nodes(i).Points(1, 2)
Next i
End With

Cordialement
Pascal


"Tatanka" a écrit dans le message de
news: %
Bonsoir, Bonsoir,

J'ai dessiné une forme libre et j'aimerais récupérer les
coordonnées (Left, Top) de chacun des noeuds de cette forme.
Comment faire ?

Marci beaucoup,

Sarge