Bonjour petitange, le forum
MonGraphique_Ref.Name = <Erreur Automation>
c'est normal car j'avais dit une bétise, la propriété name d'un graphique incorporé à une feuille est en lecture seule
pour le reste, shape fonctionnera si tu enléves la précison Graphique ajouté par Excel au nom du graphique
l'objet "Graphique 1" va renvoyer en nom "Graphique Graphique 1" alors que shapes travaille à partir de "Graphique 1". C'est une particularité propre à Excel 2000 et Xp, sous 97 le name renvoyait bien "Graphique 1".
j'ai modifié ta macro en ce sens.
Cordialement, A+
Dim MonGraphique_Ref As Chart
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique"
Set MonGraphique_Ref = ActiveChart
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Graphique").Range("P12:Z13"), PlotBy _
:=xlRows
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Titre du graphique"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Catégorie"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Euro"
End With
ActiveChart.HasDataTable = False
ActiveSheet.Shapes(Right(MonGraphique_Ref.Name, Len(MonGraphique_Ref.Name) - 10)).ScaleHeight 1.5, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes(Right(MonGraphique_Ref.Name, Len(MonGraphique_Ref.Name) - 10)).ScaleWidth 1.49, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes(Right(MonGraphique_Ref.Name, Len(MonGraphique_Ref.Name) - 10)).ScaleWidth 1.34, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes(Right(MonGraphique_Ref.Name, Len(MonGraphique_Ref.Name) - 10)).ScaleHeight 1.33, msoFalse, _
msoScaleFromTopLeft