Le code ci-dessous devrait représenter un bon départ.
Sinon si tu as besoin d'autres propriétés du graphique, tu peux toujours enregistrer une macro qui enregistrera les modifs que tu fais manuellement.
J'ai mis un booléen lb_CreerGraphe.
Si lb_CreerGraphe = True, le code exécute le code pour la création d'un graphique.
Sinon il travaille sur le 1e graphe d'une feuille.
Option Explicit
Public Sub gsub_Test()
Dim l_ObjGraphe As ChartObject
Dim l_Graphe As Chart
Dim l_Courbe As Series
Dim ll_LigneDebut As Long
Dim ll_LigneFin As Long
Dim ls_SheetName As String
Dim lb_CreerGraphe As Boolean
ll_LigneDebut = 2
ll_LigneFin = 12
ls_SheetName = ActiveSheet.Name
lb_CreerGraphe = True
If lb_CreerGraphe Then
'Création d'un graphe
Set l_Graphe = Charts.Add
Else
'Sélectionne le graphe de la feuille choisie
Set l_ObjGraphe = Worksheets(ls_SheetName).ChartObjects(1)
Set l_Graphe = l_ObjGraphe.Chart
End If
With l_Graphe
'Type de graphique
.ChartType = xlLineMarkers
If lb_CreerGraphe Then
'Ajoute une courbe
Set l_Courbe = .SeriesCollection.NewSeries
Else
'Travaille avec la 1e courbe
Set l_Courbe = .SeriesCollection(1)
End If
'Définit les plages de valeurs de la courbe
With l_Courbe
'Plage pour les abscisses
.XValues = _
"=" & ls_SheetName & "!R" & ll_LigneDebut & "C1:R" & ll_LigneFin & "C1"
'Plage pour l'ordonnée
.Values = _
"=" & ls_SheetName & "!R" & ll_LigneDebut & "C5:R" & ll_LigneFin & "C5"
End With
'Titre des abscisses
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Abscisses"
'Titre des ordonnées
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ordonnées"
'Titre du graphique
.HasTitle = True
.ChartTitle.Text = "Mon graphe"
If lb_CreerGraphe Then
'Place le graphe dans la feuille voulue
.Location Where:=xlLocationAsObject, Name:=ls_SheetName
End If
End With
End Sub