Que tal editar as fórmulas da série? Eu tenho um tutorial em Fórmula da Série de Mudança - Rotinas Aprimoradas , mas a essência é a seguinte:
A fórmula da série é assim:
=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$11,Sheet1!$B$2:$B$11,1)
Os argumentos significam:
=SERIES([Series Name],[X Values],[Y Values],[Plot Order])
Você acessa essas fórmulas no VBA usando algo como
ActiveChart.SeriesCollection(1).Formula
Você pode usar o seguinte para alterar uma parte da fórmula de 'OldString' para 'NewString':
ActiveChart.SeriesCollection(1).Formula = WorksheetFunction.Substitute( _
ActiveChart.SeriesCollection(1).Formula, OldString, NewString)
Você pode incluir isso em um procedimento de VBA que solicite ao usuário essa string antiga para substituir por uma nova string e faça as alterações em todas as séries no gráfico ativo:
Sub ChangeSeriesFormula()
''' Just do active chart
If ActiveChart Is Nothing Then
'' There is no active chart
MsgBox "Please select a chart and try again.", vbExclamation, _
"No Chart Selected"
Exit Sub
End If
Dim OldString As String, NewString As String, strTemp As String
Dim mySrs As Series
OldString = InputBox("Enter the string to be replaced:", "Enter old string")
If Len(OldString) > 1 Then
NewString = InputBox("Enter the string to replace " & """" _
& OldString & """:", "Enter new string")
'' Loop through all series
For Each mySrs In ActiveChart.SeriesCollection
strTemp = WorksheetFunction.Substitute(mySrs.Formula, _
OldString, NewString)
mySrs.Formula = strTemp
Next
Else
MsgBox "Nothing to be replaced.", vbInformation, "Nothing Entered"
End If
End Sub
O tutorial que citei acima tem mais exemplos de como editar fórmulas de série.