ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Determining chart points at mouse position (https://www.excelbanter.com/excel-programming/299902-determining-chart-points-mouse-position.html)

steve

Determining chart points at mouse position
 
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


Jon Peltier[_7_]

Determining chart points at mouse position
 
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/Ge...ChartSheet.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/
_______

Steve wrote:

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



Tom Ogilvy

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





All times are GMT +1. The time now is 02:57 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com