MouseMove sur un graphique

  • Initiateur de la discussion cipango
  • Date de début
C

cipango

Guest
Bonjour à toutes et à tous,

Ce que je cherche à obtenir me paraît simple, mais sa réalisation dans Excel me semble bien complexe. Merci d’avance à tous ceux qui pourraient me dépanner.
Je voudrais faire apparaître les coordonnées x et y de n’importe quel point d’un graphe dans un textbox. Les coordonnées x et y étant dans les unités du graphe Graph1 ( fonction pointeur ou réticule ). On m’a indiqué une piste avec l’événement MouseMove qui existe pour les graphiques, mais je ne comprends pas les déclarations à effectuer dans les modules et module de classe. Dans l’aide de VBA ci-dessous, à quoi correspondent maClassedegraphique, monModuledeclasse, eventClassModule, maClassedegraphique, Worksheets(1) et ChartObjects(1)
Dans mon fichier Excel, j’ai une simple feuil1 et un Graph1.

Bonne journée.
 
L

LaurentTBT

Guest
Salut Cipango,
En effet, les événements liés aux graphiques sont pas évidents à mettre en oeuvre (je t'avais d'ailleurs prévenu!).
Pour le moement, je suis au même niveau que toi, et je n'ai plus le temps de creuser la question (départ boulot dans 5').

Ceci dit, va faire un tour sur le site de Laurent Longre, avec un chapitre que je trouve très bien expliqué sur les procèdures événementielles, avec notamment un § consacré aux graphiques.

J'essaye un lien, mais pas sûr de savoir m'y prendre
http://longre.free.fr

Je n'ai pas encore eu le temps de m'y pencher à fond, mais cela va peut-être t'aider.

Sur ce, bonne journée à tous
 
C

cipango

Guest
Bonjour à tous,

Et merci à John. C'est effectivement "ça" que je veux mais ça ne fonctionne pas sur mon poste. D'abord il ne reconnaît pas un contrôle. J'ai donc supprimé ton textbox1 et j'en ai remis un tout neuf sans changer le nom. Il n'y a plus de message d'erreur, mais rien n’apparaît dans le textbox1 lorsque je déplace la souris sur la feuille.
Apparemment, MSChart1 correspond par défaut à la feuill1, si j'ai bien compris ? Et le graph1 que j'ai sur ma feuille, comment s'appelle-t-il dans VBA ? Et comment éventuellement changer son nom dans VBA.
Et enfin, pourquoi tout ce bazar dans l'aide VBA sur les modules pour que le mousemove soit reconnu par les objets graphiques comme la feuille ou le graphe ?
Je suppose que ça marche sur ton poste, ce qui me surprends et me rassure en même temps. Je devrais donc bientôt y arriver aussi.
Encore merci pour ton aide.
A plus et bonne journée.
Cipango.
 
J

john

Guest
Salut,

Regarde si tu a bien le même objet que moi, moi c'est
Microsoft chart control version 6.0(OLEDB).
(pour le voir, tu fais un clic droit sur ta boite à outil dans VBA, ensuite tu cliques sur contrôles supplémentaires, et là tu as une liste avec tous tes composants, recherche si tu as celui que j'ai)

Si ce n'est pas le même, supprime mon graphique et mets le tiens, normalement ça devrai fonctionner.

Bonne journée.

John
 
C

cipango

Guest
ReSalut,

L'objet Microsoft chart control version 6.0(OLEDB) n’apparaît pas dans la liste. Mais j'ai un peu de mal à comprendre... Ce que tu appelles le graphique, c'est un graphe ( Graph1 par ex ) de excel ou une feuille de calcul ( Feuil1 par ex ) ou autre chose…
Quand tu me dis supprimer ton graphique et mettre le mien à la place, ça signifie quoi exactement ?
Encore un truc qui me perturbe depuis un moment: la userform, elle s'appelle userform ou userform1 par défaut ? Dans la fenêtre des propriétés, son nom est userform1, alors que quand je doubleclic dessus pour faire apparaître la procédure correspondante, je vois le code "sub userform_click ...
Désolé d'être aussi ignare et de poser des questions peut-être idiotes.
Encore merci.
Bonne après-midi.

Cipango.
 
J

john

Guest
Re,

En fait c'est un graphique pour mettre sur un userform, et c'est normal que tu ailles userfom1_click quand tu double clic dessus, car c'est l'action click qui se lance lorsque tu cliques sur le graphique en question, donc c'est pareil pour le déplacement de la souris sur le graphique tu obtiendras la procédure suivante :
MSChart1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As stdole.OLE_XPOS_PIXELS, ByVal Y As stdole.OLE_YPOS_PIXELS)

Et c'est comme ça avec tous les éléments que tu vas ajouter sur ton USF, Tu as le choix entre plusieurs action possible.

J'espère avoir pu t'éclairer un peu. Mais si tu ne comprend pas, faudrai peut être mieux de te renseigner sur le qu'est-ce que VBA et connaitre les propriétés que tu peux avoir sur les objets que l'on peux mettre dans un USF. Je ne saurai pas te donner des explication comme ça en deux minutes, car moi ça fait 2 ans que je suis dans le VBA.

Donc rien de tel que la pratique et lire beaucoup de bouquin sur le VBA, moi j'ai VBA pour excel 2002 de chez WROX.

voici l'adresse du site: www.wrox.fr ou tu peux aller sur le site d'un de mes profs qui est super bien dont voici l'adresse : http://membres.lycos.fr/micdub/excelvba.htm

Bonne journée.

John
 
C

cipango

Guest
Bonjour à tous,
Je suis bien d'accord avec toi John, il faudrait que je me mette à bosser sérieusement VBA avec un bouquin ou sur Internet. Mais je n'ai pas trop le temps, alors on verra plus tard.
Pour en revenir à mon problème, ce n'est pas un graphique à mettre sur une userform, mais le graph1 obtenu à partir du tableau de valeurs d’une feuil1 pour lequel je veux obtenir les coordonnées x et y de n’importe quel point.
Or, ce graph1 ( nom donné par défaut évidemment ), je ne sais pas comment le nommer dans VBA. Apparemment ce serait un Sheets("Graph1") ou ActiveChart…. C’est en faisant des macros et en regardant le code après, que j’ai obtenu ces infos.
Merci d’avance pour d’éventuels éclaircissements.
Bonne journée.
Cipango.
 
C

cipango

Guest
Bonjour à tous,
Je refais un petit tour sur le forum pour voir si quelqu'un s'est à nouveau intéressé à mon pointeur - réticule.
J'aurais bien voulu savoir si le graphique dont parlait John était un objet "graphique" de VBA ou simplement un graphe obtenu à partir d'une feuille excel. Personnellement, je voudrais que ce soit un simple graphe obtenu à partir d'une feuille excel. Ce qui semble d'ailleurs compliquer les choses pour mon réticule...
Par moment, j'ai l'impression de ne rien comprendre du tout...
Merci aux courageux qui voudront bien m'aider.
Bonne après - midi.
Cipango.
 
C

cipango

Guest
Graphique dans Excel ou dans VBA ?

Bonjour à tous,
Je refais un petit tour sur le forum pour voir si quelqu'un s'est à nouveau intéressé à mon pointeur - réticule.
J'aurais bien voulu savoir si le graphique dont parlait John était un objet "graphique" de VBA ou simplement un graphe obtenu à partir d'une feuille excel. Personnellement, je voudrais que ce soit un simple graphe obtenu à partir d'une feuille excel. Ce qui semble d'ailleurs compliquer les choses pour mon réticule...
Par moment, j'ai l'impression de ne rien comprendre du tout...
Merci aux courageux qui voudront bien m'aider.
Bonne après - midi.
Cipango.
 
J

john

Guest
Re: Graphique dans Excel ou dans VBA ?

Salut,

Comme je t'ai dis dans mon précédent message, le graph utilisé dans mon exemple est un graph en VBA, j'ai regardé si c'était possible d'avoir les coordonnées x et y s'afficher dans la barre d'état d'un graph d'excel, mais je n'ai pas trouvé comment faire, pourtant ce n'est pas faute d'avoir cherché, mais bon !!!

Bonne fin de journée.

John
 
C

cipango

Guest
Re: Graphique dans Excel ou dans VBA ?

Salut,
Merci John, c'est vrai que ça n'a pas l'air facile d'afficher ces sacrées coordonnées...
J'ai essayé moi aussi des trucs qui ne fonctionnent pas pour le moment, mais je te tiens au courant si j'y arrive ( quand j'aurai plus de temps, comme tout le monde... ). Peut-être que quelqu'un dans ce forum va pouvoir nous dépanner...
Encore merci pour tes essais.
A plus.
Cipango.
 
T

Ti

Guest
Re: Graphique dans Excel ou dans VBA ?

A vrai dire, j'avais fait un programme avec un graph réagissant au mouseMove, via un module de classe, mais je n'ai pas poussé plus loin dans la mesure où le mousemove ne fonctionne que si l'objet est sélectionné, sinon il ne se passe rien, ce qui ne me satisfaisait pas. Une solution serait d'afficher le graph dans un Userform, on aurait alors la possibilité d'utiliser MouseMove directement, mais on en arrive à des complications bien lourdes. Est-ce que le jeu en vaut la chandelle ?
 
C

cipango

Guest
Re: Graphique dans Excel ou dans VBA ?

Afficher le graph dans un userform... Non, le jeu n'en vaut pas la chandelle !
Je me demande pourquoi une fonction aussi classique que ce pointeur n'existe pas dans Excel.
D'autre part, les coordonnées des points du tableau ( et seulement ceux là, c'est ça le problème ) sont bien indiqués automatiquement simplement en posant le curseur sur le point du graph.
Dans ton programme qui fonctionne, pourquoi ne pas imposer la selection automatique de l'objet ( lequel, au fait ? ), si cela est possible.
N'hésite pas à me filer le programme pour que je cherche à comprendre...
Merci et bonne journée.
Cipango.
 

Discussions similaires

Réponses
6
Affichages
571

Statistiques des forums

Discussions
314 093
Messages
2 105 785
Membres
109 429
dernier inscrit
romainP