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 :
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
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
Cependant ce code me renvoi une erreur au moment de l'exécution de
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
L'erreur est
Code : Sélectionner tout - Visualiser dans une fenêtre à part .HasTitle = True
Pourriez vous me dire quelle est l'erreur car je ne comprend pas vraimentErreur d'exécution '-2147221080 (800401a8)': Erreur Automation
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.
Merci d'avance pour votre aide.
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
Partager