Je me suis rendue compte qu'il s'agissait d'un problème de version d'excel. Mon amie a la version 2016 et moi la dernière.
J'ai donc refait un autre code qui supprime tout le graphe et en crée un autre à chaque fois. Mais le soucis c'est que le graphe ne se place pas comme je veux sur la feuille. Il cache des cellules qui ont des informations importantes. J'ai vu que le code ci-dessous pouvait aider à faire ça.
ActiveSheet.Shapes(nom_graph).IncrementLeft
Mais je n'arrive pas avoir le nom du graphe. Comment pourrais-je faire s'il vous plaît?
D'ailleurs voici mon code de tracé de graphe.
'Empty previous chart
Worksheets("Working Capital").ChartObjects.Delete
'Create the new chart
DL = Sheets("Stock INT2").Range("A1").End(xlDown).Row
ActiveSheet.Shapes.AddChart2(322, xlColumnStacked).Select
'ActiveChart.SetSourceData Source:=Sheets("Stock INT2").Range("A1", Sheets("Stock INT2").Cells(DL, UBound(Clients) + 2))
'ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
If ActiveChart.SeriesCollection.Count = 1 Then
ActiveChart.SeriesCollection(1).Delete
End If
For i = 1 To UBound(Clients) + 2
ActiveChart.SeriesCollection.NewSeries
If i = UBound(Clients) + 1 Then
ActiveChart.SeriesCollection(i).Name = "Low Target"
ElseIf i = UBound(Clients) + 2 Then
ActiveChart.SeriesCollection(i).Name = "High Target"
Else
ActiveChart.SeriesCollection(i).Name = Clients(i)
End If
ActiveChart.SeriesCollection(i).Values = Sheets("Stock INT2").Range(Sheets("Stock INT2").Cells(2, i + 1), Sheets("Stock INT2").Cells(DL, i + 1))
ActiveChart.SeriesCollection(i).XValues = Sheets("Stock INT2").Range("A2:A" & DL)
If i = UBound(Clients) + 1 Or i = UBound(Clients) + 2 Then
ActiveChart.SeriesCollection(i).ChartType = xlLine
Else
ActiveChart.SeriesCollection(i).ChartType = xlColumnStacked
End If
Next i
ActiveChart.HasTitle = False
ActiveChart.HasLegend = True
ActiveChart.Legend.Position = xlLegendPositionBottom