Here is some detailed code that should help you :
Sub Graph()
Dim Gr As Chart
Set Gr = ActiveWorkbook.Charts.Add
With Gr
'Whole data source
.SetSourceData Source:=Range(Sheets(Src_Name).Cells(2, 1), Sheets(Src_Name).Cells(20, 5)), PlotBy:=xlRows
'Graph type
.ChartType = xlXYScatterSmooth
'Place
.Location Where:=xlLocationAsNewSheet, Name:=NewSheetName
'Title
.HasTitle = True
.ChartTitle.Characters.Text = "Chart Title"
For a = 1 To 20
'Data Series 1
.SeriesCollection.NewSeries
.SeriesCollection(a).Values = Range(Sheets(Src_Name).Cells(2, 2), Sheets(Src_Name).Cells(20, 5)) 'change with a
.SeriesCollection(a).XValues = Range(Sheets(Src_Name).Cells(2, 1), Sheets(Src_Name).Cells(20, 1)) 'not changing I think
.SeriesCollection(a).AxisGroup = 1
.SeriesCollection(a).Name = "MTTF"
'.SeriesCollection(i).Format.Line.Weight = 1
'.SeriesCollection(i).Format.Line.ForeColor.RGB = RGB(int1 as integer, int1 as integer, int3 as integer) ' for a row/line
'.SeriesCollection(i).Format.Fill.ForeColor.RGB = RGB(int1 as integer, int1 as integer, int3 as integer)
Next a
'Axis parameters
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Age"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Text = "Hours"
.PlotArea.Interior.ColorIndex = 2
.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
.ChartArea.Font.Size = 14
.Deselect
End With
'Legend positioning
With ActiveChart.Legend
.Left = 350
.Top = 75
End With
'Drawing area positiong
With ActiveChart.PlotArea
.Width = 550
.Height = 350
End With
'Clean memory
Set Gr = Nothing
End Sub