View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default 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