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

bug

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

pasbug

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.... ça fonctionne. (pour le moment sur une petite macro... j'attends d'intégrer ça au programme global)

Rechercher des sujets similaires à "methode range creation graphique"