Bonjour,

Désireux de faire un graphique à l'aide d'une macro vba, et ne sachant comment faire, j'ai fait un enregistrement afin de trouver les différents critères correspondant. J'obtiens donc le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Range("A4:C8").Select
    Range("C8").Activate
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Passé").Range("A4:C8"), PlotBy:= _
        xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Passé"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = _
        "Données historiques en croissance géométrique"
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
    ActiveChart.HasLegend = True
    ActiveChart.Legend.Position = xlBottom
Après étude et modification j'obtiens ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    Charts.Add
    With ActiveChart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=Sheets("Passé").Range(Sheets("Passé").Cells(1, 4), Sheets("Passé").Cells(ligne, colonne)), PlotBy:= _
        xlColumns
        .Location Where:=xlLocationAsObject, Name:="Passé"
        .HasTitle = True
        .ChartTitle.Characters.Text = "Données historiques en croissance " & Sheets("Passé").Cells(2, 1).Value
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
        .HasLegend = True
        .Legend.Position = xlBottom
    End With
Cependant ce code me renvoi une erreur au moment de l'exécution de
L'erreur est
Erreur d'exécution '-2147221080 (800401a8)': Erreur Automation
Pourriez vous me dire quelle est l'erreur car je ne comprend pas vraiment

Enfin pour finir je souhaite mettre ce graphique à une place bien particulière, j'ai trouver ce code en recherchant dans les sujets déjà posté mais je n'ai pas réussi a l'utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
ActiveSheet.ChartObjects(1).Left = Range("E5").Left
ActiveSheet.ChartObjects(1).Top = Range("E5").Top
Merci d'avance pour votre aide.