Coordonnées d'une forme

Fermé
olivlechti Messages postés 11 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 5 janvier 2015 - 20 nov. 2013 à 08:55
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 nov. 2013 à 14:50
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 nov. 2013 à 13:09
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 mardi 19 novembre 2013 Statut Membre Dernière intervention 5 janvier 2015
20 nov. 2013 à 14:10
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 nov. 2013 à 14:26
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 mardi 19 novembre 2013 Statut Membre Dernière intervention 5 janvier 2015
21 nov. 2013 à 00:10
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 nov. 2013 à 11:12
(.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 mardi 19 novembre 2013 Statut Membre Dernière intervention 5 janvier 2015
21 nov. 2013 à 11:37
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 nov. 2013 à 11:58
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 nov. 2013 à 12:11
Quel version d'Excel ? J'ai essayer sur le 2007 mais ça plante.
0
olivlechti Messages postés 11 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 5 janvier 2015
21 nov. 2013 à 12:25
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 dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 nov. 2013 à 14:50
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