Good spot jdelano,
I have included that in the below. I got the below to work after having a play (not all of your setting for the chart are included and i set it to xlLine):
Sub Create_Dynamic_Chart()
Dim sht As Worksheet
Dim chrt As Chart
Dim data_rng As Range
Dim dRange As Range
Set sht = ActiveSheet
Set dRange = Range("A2") ' dropdown
Select Case dRange.Value
Case "Charleville"
Set data_rng = Range("tblCharlevilleTemps")
Case "Dalby"
Set data_rng = Range("tblDalbyTemps")
Case "Toowoomba"
Set data_rng = Range("tblToowoombaTemps")
Case "Warwick"
Set data_rng = Range("tblWarwickTemps")
End Select
Set chrt = sht.Shapes.AddChart2(Style:=-1, Width:=900, Height:=200, Left:=Range("G2").Left, Top:=Range("G2").Top).Chart
With chrt
.SetSourceData Source:=Range(data_rng.Address(, , , 1))
.ChartType = xlLine
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = Range("A1").Value & " Min & Max Temps"
End With
End Sub
You could also do the same with less code:
Sub Create_Dynamic_Chart2()
Dim chrt As Chart
Set chrt = ActiveSheet.Shapes.AddChart2(Style:=-1, Width:=900, Height:=200, Left:=Range("G2").Left, Top:=Range("G2").Top).Chart
With chrt
.SetSourceData Source:=Range(Range("tbl" & Range("A2").Value & "Temps").Address(, , , 1))
.ChartType = xlLine
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = Range("A2").Value & " Min & Max Temps"
End With
End Sub