Determining chart points at mouse position
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
--
Regards,
Tom Ogilvy
"Steve" wrote in message
...
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
|