Coordonnées d'une forme

olivlechti Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je cherche a récupérer les coordonnées d'un noeud d'une forme sur xls.
J'ai cherché dans l'aide et il semblerait que l'utilisation de "shape.vertices" puisse répondre à ma question mais je n'ai pas réussi à l'utiliser.
Quelqu'un aurait-il une solution ?

Merci d'avance

8 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
noeud d'une forme sur xls ?
? y a pas de noeux sur une forme ?
? utilisation de "shape.vertices" ?
Explique mieux stp.
A+
0
olivlechti Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Bon, c'est qu'un problème de désignation, désolé.
Mon but est d'obtenir des coordonnées (x,y) des points caractéristiques d'une forme. Par exemple, quand on trace un rectangle, il est entouré de 8 points permettant de le redimensionner : comment avoir les coordonnées de ces points ?
En espérant que ce soit plus clair...
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Inutile de poster plusieurs fois pour un même sujet
Réponse à ta question =>> Impossible
A+
0
olivlechti Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Ce n'est pas la même question que celle que j'ai posté sur la poignée d'un connecteur ! La je cherche a identifier les coordonnées des points de début et de fin du connecteur (.BeginConnect et .EndConnect) ... Réellement impossible ?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
(.BeginConnect et .EndConnect)
C'est quel langage ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
olivlechti Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
C'est du VBA.
Ok, je donne du détail

1- Je crée un connecteur entre les "repères" n°5 (=points d'attache bas d'une forme) de 2 formes Shapes(1) et Shapes (2)

ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 1, 1, 2,0 20).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadOpen
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes(1), 5
Selection.ShapeRange.ConnectorFormat.EndConnect ActiveSheet.Shapes(2), 5

2- Je souhaite récupérer les coordonnées de ces points d'attache :
- soit directement les coordonnées de début et de fin du connecteur
- soit les coordonnées des "repères" des Shapes


J'ai essayé de regarder ce que la propriété Shape.Vertices peut m'apporter, et je sens que c'est exactement ce qu'il me faut. Voici le code que j'ai testé (fortement inspiré de ce qu'on trouve sur l'aide VBA) ... mais ça ne fonctionne pas (il bloque sur la ligne x1 = vertArray(1,1) ...):

Sub Coordonnées()

Dim vertArray As Variant
Dim x1 As Single, y1 As Single

vertArray = Feuil1.Shapes(1).Vertices
x1 = vertArray(1, 1)
y1 = vertArray(1, 2)
MsgBox "First vertex coordinates: " & x1 & ", " & y1

End Sub


--> Sais tu comment utiliser Shape.Vertices ?
--> Aurais tu une autre idée ?

Merci
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
J'ai jamais eu l'occasion de voir ce sujet
Toutefois, ta variable semble être un tableau et nécessite une assignation...
essaye avec,
    Set vertArray = Feuil1.Shapes(1).Vertices
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Quel version d'Excel ? J'ai essayer sur le 2007 mais ça plante.
0
olivlechti Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
C'est excel 2010.

J'ai essayé d'assigner comme tu le proposes mais ça ne fonctionne pas non plus ...
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
c'est disponible aussi sur le 2007
Il semble qu'il faut initialiser Vertices quelque part mais comment ?
Pour la ligne Set vertArray = Feuil1.Shapes(1).Vertices
Il faudra vraisemblablement Set mais Vertices est Empty c'est à dire non initialiser (contraire de vide)
En parcourant l'aide
Cet exemple montre comment créer une courbe dont la description géométrique est la même que la forme 1 dans myDocument. La forme 1 doit contenir 3n+1 sommets pour que l'exemple fonctionne.

Visual Basic pour Applications 
Set myDocument = Worksheets(1)
With myDocument.Shapes
.AddCurve .Item(1).Vertices
End With


Je trouve pas de solution pour le moment et n'ai plus le temps maintenant.
J'y reviendrais.
A+
0