Méthode Range(/ Range(cells pour création de graphique
Bonjour,
je souhaiterai créer un graphique combiné. J'ai réussi à extraire un code qui fonctionne. Cependant je en sais pas comment le faire fonctionner correctement avec des variables !
Voici le code en question :
[quote
]Range("DD35").Activate
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("U4:EY4, U35:EY38")
ActiveChart.FullSeriesCollection(1).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(1).AxisGroup = 1
ActiveChart.FullSeriesCollection(2).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(4).AxisGroup = 1
ActiveChart.FullSeriesCollection(1).ChartType = xlLine
ActiveChart.FullSeriesCollection(2).ChartType = xlLine
ActiveChart.FullSeriesCollection(3).ChartType = xlLine
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
[/quote]
Le problème ici est que les cases de Valeurs de série sont fixes. Via d'autres codes VBA, la case EY est voué à changer (ça peut être XFD4 à la place par exemple ou juste V4 ou SGD4). Les lignes restes les mêmes.
J'ai aussi créer
Dernierecolonne = Range("U4").End(xlToRight).Column
Mon code serait juste si la "SOURCE" d'un graphique pouvait prendre ce type de commande :
Range(Range(Cells(4, 21), Cells(4, Dernierecolonne)), Range(Cells(35, 21), Cells(35, Dernierecolonne)))
Mais cette dernière ne fonctionne pas.
J'ai aussi essayer en créant des plage :
Set PlageX = Range(Cells(4, 21), Cells(4, Dernierecolonne))
Set PlageY = Range(Cells(35, 21), Cells(35, Dernierecolonne))
Mais quand je rentre dans la source du graphique : Range(PlageX, PlageY) cela ne fait pas le résultat souhaité.
Avec cette méthode la plage des abscisses est juste (PlageX est respecté) cependant PlageY ne l'est pas. Au lieu de me prendre U35:EY38 le graphique prend : U5:EY38....
Need help !
Cordialement,
Quentin
Bonjour,
À tout hasard, avec ceci :
Range(Cells(4, 21), Cells(35, Dernierecolonne))
?
Lorsque j'utilise ce code :
Sub Macro1()
'
' Macro1 Macro
'
Dernierecolonne = 155
Range("BN35").Activate
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range(Range(Cells(4, 21), Cells(4, Dernierecolonne)), Range(Cells(35, 21), Cells(38, Dernierecolonne)))
ActiveChart.FullSeriesCollection(1).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(1).AxisGroup = 1
ActiveChart.FullSeriesCollection(2).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(4).AxisGroup = 1
ActiveChart.FullSeriesCollection(1).ChartType = xlLine
ActiveChart.FullSeriesCollection(2).ChartType = xlLine
ActiveChart.FullSeriesCollection(3).ChartType = xlLine
End Sub
J'obtiens cela la première image
Et si j'utilise ce code :
Sub Macro1()
'
' Macro1 Macro
'
Range("BN35").Activate
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range( _
"Planning!$U$4:$EY$4,Planning!$U$35:$EY$38")
ActiveChart.FullSeriesCollection(1).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(1).AxisGroup = 1
ActiveChart.FullSeriesCollection(2).ChartType = xlAreaStacked
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(4).AxisGroup = 1
ActiveChart.FullSeriesCollection(1).ChartType = xlLine
ActiveChart.FullSeriesCollection(2).ChartType = xlLine
ActiveChart.FullSeriesCollection(3).ChartType = xlLine
End Sub
J'obtiens ce que je souhaite à savoir la seconde image
Pourquoi avec la méthode CELLS la source prend tout ce qu'il y a avant aussi ????(vous pouvez voir les régions mauve et bleue respectivement de l'abscisse et de l'ordonnée).
Toujours à tout hasard
ActiveChart.SetSourceData Source:=Application.Union(Range(Cells(4, 21), Cells(4, Dernierecolonne)), Range(Cells(35, 21), Cells(38, Dernierecolonne)))
?
Je ris jaune....