C'est possible : incrementer un plage en VBA ?

stef - 4 avril 2001 à 19:32
 olivier68 - 4 avril 2001 à 22:57
bonjour,c'est l'histoire d'un mec qu'a 1 pb:

débutant VBA, je cherche sur excel à creer autant de graph que j'ai de ligne de donnée, mais je ne trouve pas comment incrementer la plage de donnée dans la macro suivant:

j'arrive juste à boucler sur la même plage, à l'aide!!!!!!!

Evidement j'obtient x fois le même graph.

Dim x As Integer

Sheets("Feuil1").Select Range("A5:A20").Select

For x = 5 To 20

Charts.Add
ActiveChart.ChartType = xl3DColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("a5:m5"), PlotBy:=xlRows
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R3C2:R3C13"
ActiveChart.SeriesCollection(1).Name = "=Feuil1!R5C1"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "POLYESTER METALLISE "
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Characters.Text = "mois"
.Axes(xlSeries).HasTitle = False
.Axes(xlValue).HasTitle = False
End With
ActiveChart.PlotArea.Select
ActiveChart.Legend.Select
Selection.Delete
ActiveChart.PlotArea.Select
ActiveChart.Axes(xlCategory).Select
Next x
End Sub

merci d'avance.

stef

1 réponse

salut stef,

Ca sent l enregistreur de macro...
ton for next part d une bonne idée mais
en fait ce qui te coince c est :
ActiveChart.SetSourceData Source:=Sheets ("Feuil1").Range("a5:m5")
tu lui figes la ligne 5 là

tu boucles avec la variable X, alors change déjà pour
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("a" & x : "m" & x)

ensuite tu utilises :
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R3C2:R3C13"
ActiveChart.SeriesCollection(1).Name = "=Feuil1!R5C1"

tente de remplacer les references relatives R3C2 et compagnie par un truc du style :

ActiveChart.SeriesCollection(1).XValues = sheets("feuil1").range("a" & x : "m" & x)

ActiveChart.SeriesCollection(1).Name =sheets("feuil1").range("a1:m1") si tes titres sont en ligne 1 sinon mais la bonne ligne.

fais moi un mail pour me dire si ça roule.

a+

olivier.
0
Rejoignez-nous