You need to take into account Areas then.
Sub x()
Dim xrange As Range
Dim yrange As Range
Dim i
Dim intArea As Integer
Set xrange = Range("A2:A5")
Set yrange = Range("B2:C5,E2:F5")
For intArea = 1 To yrange.Areas.Count
For i = 1 To yrange.Areas(intArea).Columns.Count
With ActiveChart
.SeriesCollection.NewSeries
With .SeriesCollection(.SeriesCollection.Count)
.XValues = xrange
.Values = yrange.Columns(i)
.Name = ActiveSheet.Cells(1, yrange.Areas(intArea).Columns(i).Column).Value
End With
End With
Next i
Next intArea
End Sub