1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim lw As Long
Dim lr As Long, lc As Long
Dim sh As Worksheet
Dim ws As Worksheet
If Target.Address = "$A$2" Then
Set sh = Sheet1 'Table
Set ws = Sheet2 'Chart
lw = sh.Range("A" & Rows.Count).End(xlUp).Row
lc = sh.Range("A1").End(xlToRight).Column
lr = lw + 1 - Range("n") 'Cell where days is stored.
ws.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData sh.Range(sh.Cells(2, 1), sh.Cells(Target + 1, lc)), xlColumns
For i = 1 To lc - 1 'Headers to be added
ActiveChart.SeriesCollection(i).Name = sh.Cells(1, i + 1) 'Serie
Next i
ActiveChart.SeriesCollection(1).XValues = "=Table!R2C1:R" & Target + 1 & "C" & 1
End If
End Sub |