Option Explicit
Sub UpdateCharts()
Dim wsTemp As Worksheet, wsBase As Worksheet
Dim rBase As Range, rChartSource As Range
Set wsBase = Worksheets("Base")
Set rBase = wsBase.Cells(6, 1).CurrentRegion
Set rBase = rBase.Cells(2, 1).Resize(rBase.Rows.Count - 1, rBase.Columns.Count)
Application.ScreenUpdating = False
'remove and create new Temp, clear names
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Temp").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Worksheets.Add
Set wsTemp = ActiveSheet
wsTemp.Name = "Temp"
If wsBase.AutoFilterMode Then wsBase.AutoFilterMode = False
rBase.Rows(1).AutoFilter
'add first filter 2-2-1
rBase.AutoFilter Field:=4, Criteria1:="2"
rBase.AutoFilter Field:=5, Criteria1:="2"
rBase.AutoFilter Field:=6, Criteria1:="1"
Call wsBase.AutoFilter.Range.Copy
wsTemp.Select
wsTemp.Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wsBase.AutoFilterMode = False
'add second filter 2-2-0
rBase.AutoFilter Field:=4, Criteria1:="2"
rBase.AutoFilter Field:=5, Criteria1:="2"
Call wsBase.AutoFilter.Range.Copy
wsTemp.Select
wsTemp.Cells(1, 8).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wsBase.AutoFilterMode = False
'add third filter 2-0-1
rBase.AutoFilter Field:=4, Criteria1:="2"
rBase.AutoFilter Field:=6, Criteria1:="1"
Call wsBase.AutoFilter.Range.Copy
wsTemp.Select
wsTemp.Cells(1, 15).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wsBase.AutoFilterMode = False
'add fourth filter 0-2-1
rBase.AutoFilter Field:=5, Criteria1:="2"
rBase.AutoFilter Field:=6, Criteria1:="1"
Call wsBase.AutoFilter.Range.Copy
wsTemp.Select
wsTemp.Cells(1, 22).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wsBase.AutoFilterMode = False
'update series
With Worksheets("Charts")
Application.DisplayAlerts = False
Set rChartSource = wsTemp.Cells(1, 1).CurrentRegion
Set rChartSource = rChartSource.Cells(1, 1).Resize(rChartSource.Rows.Count, 2)
.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=rChartSource
Set rChartSource = wsTemp.Cells(1, 8).CurrentRegion
Set rChartSource = rChartSource.Cells(1, 1).Resize(rChartSource.Rows.Count, 2)
.ChartObjects("Chart 2").Activate
ActiveChart.SetSourceData Source:=rChartSource
Set rChartSource = wsTemp.Cells(1, 15).CurrentRegion
Set rChartSource = rChartSource.Cells(1, 1).Resize(rChartSource.Rows.Count, 2)
.ChartObjects("Chart 3").Activate
ActiveChart.SetSourceData Source:=rChartSource
Set rChartSource = wsTemp.Cells(1, 22).CurrentRegion
Set rChartSource = rChartSource.Cells(1, 1).Resize(rChartSource.Rows.Count, 2)
.ChartObjects("Chart 4").Activate
ActiveChart.SetSourceData Source:=rChartSource
Application.DisplayAlerts = True
End With
wsTemp.Visible = xlSheetHidden
Application.ScreenUpdating = True
Worksheets("Charts").Select
End Sub