Bonjour,
J'ai un problème un peu particulier avec VBA sur Excel. Mon objectif est d'écrire une fonction qui, ayant pour argument la position (X et Y) de plusieurs points, leurs amplitudes (vitesse) et leurs directions (en degrés), la fonction retourne le nombre des positions (Range.rows.count) et trace des flèches (représentant ainsi un champ de vitesse).
Jusque là tout va bien, j'ai réussi à écrire la fonction en traçant les flèches. Le problème est la direction. J'ai donc écrit un code plus simple pour mieux manipuler la direction d'une flèche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Sub ligne()
With Worksheets("Feuil1")
Set arrow = .Shapes.AddConnector(msoConnectorStraight, 300, 300, 400, 400)
arrow.Line.EndArrowheadStyle = msoArrowheadOpen
End With
End Sub
Le problème est au niveau de la ligne 3 (sachant que (300,300) est le point de départ et (400,400) et le point d'arrivé de la flèche). La première remarque c'est que le point d'origine d'Excel est le coin haut à gauche. La deuxième est que les Ys positives vont vers le bas. Tant que les valeurs des Xs Ys sont positives, j'arrive à représenter la flèche où je veux. Par contre, dès que j'introduis une valeur négative (peu importe où), l'origine du repère change de position. Je ne sais donc pas s'il y a moyen de fixer cet origine dans un autre endroit de manière à ce qu'on peut visualiser et la partie négative et la partie positive ? ou bien comment varie l'origine en fonction des valeurs négatives ?

Merci pour votre aide.