Graphique en VBA

Bonsoir

je souhaiterai générer des graphiques de facon automatique sur ma feuille de calcul nommée "STAT" , j'ai donc utilisé l'enregistreur

de macro et obtenu le code suivant :

With Sheets("STAT")
Range("A45:A75,j45:j75").Select
    Charts.Add
    ActiveChart.ChartType = xlXYScatter
    ActiveChart.SetSourceData Source:=Sheets("STAT").Range("A45:A75,j45:j75"), _
        PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="STAT"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "VOLUMES DES VENTES"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "JOURS"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "VOLUMES"
    End With
    ActiveSheet.Shapes("Graphique 3").ScaleWidth 0.83, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Graphique 3").ScaleHeight 0.85, msoFalse, _
        msoScaleFromBottomRight
        With Sheets("STAT").Shapes("Graphique 3")
        .Left = Range("l45").Left
        .Top = Range("l45").Top
End With

J'obtiens en réutilisant la présente macro et en l'adaptant une errer sur la ligne :

ActiveSheet.Shapes("Graphique 3").ScaleWidth 0.83, msoFalse, _

avec l'indication : l'element portant ce nom est introuvable

Auriez vous une idée sur la cause de cette erreur ? Merci à vous

Bonsoir, et si tu remplaces :

ActiveSheet.Shapes("Graphique 3")

par :

ActiveSheet.Shapes(1)

pour faire référence non pas au graphique nommé "Graphique 3" qui est généré automatiquement par Excel, et qui va donc varier à chaque fois, mais au premier graphique de la feuille ?

Merci oyobrans je vais tester cela !


effectivement je n'ai plus l'erreur et je vous en remercie , toutefois une derniere question , sur cette meme feuille je dispose deja

de boutons de formulaires permettant l'executions de macros , qui j'imagine porte aussi la denomination "shapes" , sur la macro

de creation de mon graphique j'ai les lignes finales suivantes pour son positionnement sur ma feuille de calcul :

With Sheets("STAT").Shapes(1)  ' <--- modifée en suivant votre conseil 
        .Left = Range("l45").Left
        .Top = Range("l45").Top
end with 

et le soucis c'est que ces dernières instructions m'ont deplacé un bouton de formulaire , il y a t il un moyen d'y remedier ?

Merci à vous

..finalement trouvé , j'ai remplacé shapes(1) par ChartObjects(1) .merci

Nickel

Rechercher des sujets similaires à "graphique vba"