Option Explicit
Private WithEvents Cht As Chart, CelXY As Range
Private Sub Worksheet_Activate()
Dim S As Series, TSpl() As String
Set Cht = Me.ChartObjects(1).Chart
Set S = Cht.SeriesCollection(1)
TSpl = Split(S.Formula, ",")
Set CelXY = Application.Range(TSpl(1) & ":" & TSpl(2))
End Sub
Private Sub Cht_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
Dim Gauche As Double, Largeur As Double, XMin As Double, XMax As Double, XDon As Double, L As Long
Gauche = Cht.PlotArea.InsideLeft: Largeur = Cht.PlotArea.InsideWidth
With Cht.Axes(xlCategory): XMin = .MinimumScale: XMax = .MaximumScale: End With
XDon = XMin + (XMax - XMin) * (X * 0.75 - 0.3 - Gauche) / Largeur
If CelXY Is Nothing Then Exit Sub
DoEvents
On Error Resume Next
L = WorksheetFunction.Match(XDon, CelXY.Columns(1))
Me.[D26:E26].Value = CelXY.Rows(L).Value
End Sub