Determining chart points at mouse position

S

Steve

I can determine where the mouse is in a MouseUp event on a
chart (thanks to Greg and Jon for the helpful hints) but
converting that to chart points (not printing points --
1/72 in) and values is ludicrous.

I can estimate chart points (the chart X value) by using
the mouse position in printing points (1/72 in) and Left,
InsideWidth, the total number of X points on the charts,
and some silly math. However, if you float the mouse
pointer over a point on the graph, a Excel pop-up shows
the actual chart point and value. That's what I need!
Microsoft can do it; why can't I?

I suspect that if I could determine the index of the Point
object in the Points collection, I could then read the
values from the worksheet data. But how can I determine
that index? Is there another way?

I think my next post will have to be to a psychiatry group.

Steve
 
J

Jon Peltier

Steve -

Forget the mouse coordinates, it'll only enrich the psychiatrists. I
have some sample code to get information about clicked points, and you
can use a different event for mousing over the points:

Easy version, chart sheets only:
http://peltiertech.com/Excel/Zips/GetXYonaChartSheet.zip

Harder, embedded charts:
http://peltiertech.com/Excel/Zips/GetXYonAnyChart.zip

Documentation is rather scant, but you should at least get an idea.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______
 
T

Tom Ogilvy

From the VBA help example for GetChartElement method of the Chart object:

Private Sub Chart_MouseMove(ByVal Button As Long, _
ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long

ActiveChart.GetChartElement X, Y, IDNum, a, b
If IDNum = xlLegendEntry Then _
MsgBox "WARNING: Move away from the legend"
End Sub

See excel VBA help for details:

expression.GetChartElement(X, Y, ElementID, Arg1, Arg2)
if the element is a series it returns

ElementID Arg1 Arg2
xlSeries SeriesIndex PointIndex

Unlike other type functions, the last 3 arguments are returned from
GetChartElement
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top