Itération dans une macro

Salut à tous!

je ne parviens pas à réaliser l'itération dans ma macro! voila mon problème: je veux créer un graphe avec trois champs ce que je parviens à faire en répétant les modifs manuellement dans la macro. Mais j'ai l'impression que la macro n'accepte qu'un nombre limité d'opérations donc il faut que je passe par une itération...qui ne marche pas

Le bug apparait à partir de la ligne en gras

merci bcp!

Sub Macrofinalrov()

'
' Macrofinalrov Macro
'

'

Range("A2:C2").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Range("'Commandes'!$A$2:$C$2")
ActiveChart.SeriesCollection(1).XValues = "='Commandes'!$B$2"
ActiveChart.SeriesCollection(1).Values = "='Commandes'!$C$2"

For i = 2 To 37 'lance i

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).Select

ActiveChart.SeriesCollection(i).Range = "=Commandes!A" & i 'ok
ActiveChart.SeriesCollection(i).XValues = "=Commandes!B" & i 'ok
ActiveChart.SeriesCollection(i).Values = "=Commandes!C" & i 'ok
ActiveChart.Location Where:=xlLocationAsNewSheet

ActiveChart.SeriesCollection(i).Select
ActiveChart.SeriesCollection(i).Points(1).Select
With Selection
.MarkerStyle = 1
.MarkerSize = 7
End With
Selection.MarkerStyle = 1
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent1
.ForeColor.TintAndShade = 0
.Solid
End With

Next i ' passe à i+1

End Sub

3 réponses

  1. bonjour

    sans savoir ce qui ne marche pas, ni le message d'erreur, ni le fichier pour mener des test, pas facile de répondre.

    Si
    ActiveChart.SeriesCollection(1).XValues = "='Commandes'!$B$2"
    fonctionne, la différence avec
    ActiveChart.SeriesCollection(i).Range = "=Commandes!A" & i 'ok
    c'est les apostrophes autour de Commandes
    0
    1. Bonjour,

      le texte d'erreur est " Erreur d'exécution 438. Propriété ou méthode non gérée par cet objet". tu sais ce que cela veut dire?

      meme en insérant des apostrophes autour cela ne marche pas.
      0
      1. Bonjour,
        Au passage, il faut insérer le signe ($) dans votre ligne en gras comme suit :
        ActiveChart.SeriesCollection(i).Range = "='Commandes'!$A$" & i    '  ok


        Salutations.
        Le Pingou
        0