To solve your question, you need to get the left and top position of two objects:
- the position of which is set relative to the upper left corner of the sheet range region.
- a point in a row whose position is set relative to the upper left corner of the graph
The combination of both results with the following code (fixed parameters - the required changes in your situation, may be more dynamic with the cycle)
Sub Add_Text_to_point() Dim tmpCHR As ChartObject Set tmpCHR = Sheet1.ChartObjects(1) 'put index of your chartobject here 'for first serie, for point 2nd here '(change accordingly to what you need) With tmpCHR.Chart.SeriesCollection(1).Points(2) Sheet1.Shapes.AddTextbox(msoTextOrientationHorizontal, _ .Left + tmpCHR.Left, _ .Top + tmpCHR.Top, _ 100, 15) _ .TextFrame.Characters.Text = "Temperature" End With End Sub
After that, the image will be shown below.

source share