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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
papou
Le #5426711
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" %
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



Tatanka
Le #5426291
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"
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"
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







papou
Le #5425681
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"
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" 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" 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











Publicité
Poster une réponse
Anonyme