New fellow from work wrote a macro or 3 to do the job.
Sub Chart_Serie_Change()
Dim shChartSheet As Worksheet
Dim shDataSheet As Worksheet
Dim chChart As Object
Dim sSheetDataName As String
Dim i As Integer
Dim j As Integer
Set shChartSheet = Sheet6
Set shDataSheet = Sheet7
Set chChart = shChartSheet.ChartObjects
j = iColumn(shDataSheet)
sSheetDataName = shDataSheet.Name
If j = 1000 Then Exit Sub
'To change the chart
For Each chChart In shChartSheet.ChartObjects
i = iRow(shDataSheet, chChart)
If i = 1000 Then Exit Sub
shChartSheet.Activate
chChart.Activate
chChart.Chart.SeriesCollection(2).Values = "='" & sSheetDataName & "'!R"
& i & "C3:R" & i & "C" & j
Next chChart
MsgBox ("Charts have been updated")
End Sub
'To find the column the data needs to extend to
Function iColumn(shSheet As Worksheet) As Integer
iColumn = 3
With shSheet
Do While Year(.Range("A1").Cells(1, iColumn).Value) <> Year(Now()) _
Or Month(.Range("A1").Cells(1, iColumn).Value) <> Month(Now()) _
Or Day(.Range("A1").Cells(1, iColumn).Value) <> Day(Now())
iColumn = iColumn + 1
If iColumn > 250 Then
MsgBox ("Please, Check date in data source sheet")
iColumn = 1000
Exit Function
End If
Loop
End With
iColumn = iColumn - 1
End Function
'To find the row the chart refers to
Function iRow(shSheet As Worksheet, chChart_Obj As Object) As Integer
'I needed to start at row 6
iRow = 6
Dim sName As String
sName = chChart_Obj.Name
With shSheet
Do While .Range("B" & iRow).Value <> sName
iRow = iRow + 7
If iRow > 120 Then
MsgBox ("Please, check chart names in data source sheet")
iRow = 1000
Exit Function
End If
Loop
End With
End Function
It seems to work fairly well.