un graphe avec des colonnes non-contigues

  • Initiateur de la discussion christophe
  • Date de début
C

christophe

Guest
bonjour à tous,

je souhaite réaliser plusieurs graphes à partir d'une matrice calculée de N lignes sur 11 colonnes.
j'utilise le format range(cells(1,1),cells(var1,var2) qui fonctionne parfaitement pour récupérer une plage de valeurs mais je voudrais également pouvoir sélectionner une plage avec, par exemple, les colonnes 3 à 5 et 7à10


j'ai essayé avec Union sans succès.
j'ai également tenté de regrouper les colonnes par thème mais la plage 5 à 8 m'interdit de récupérer la légende de la colonne 1.

Dim ch2 As ChartObject
Set ch2 = Worksheets(feuille).ChartObjects.Add(100, 300, 400, 250)
ch2.Chart.ChartWizard Source:=Sheets(feuille).Range(Cells(ligne_debut, colonne_debut), Cells(ligne_fin, colonne_fin)), _
gallery:=xlColumn, Format:=4, PlotBy:=xlRows, CategoryLabels:=1, SeriesLabels:=1, Title:='global', _
CategoryTitle:='mois', ValueTitle:='nombre de retours'


Comment faire pour réaliser cette sélection ?

merci de votre aide

christophe
 
C

christophe

Guest
En fait, j'ai progressé depuis tout à l'heure et je me suis aperçu que la commande union sélectionnait bien les plages que je voulais mais je n'arrive pas à exploiter cette sélection dans mon graphe (ou comment utiliser myMultiAreaRange dans le graphe ch3 ).

Dim ch3 As ChartObject
Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Set r1 = Range(Cells(ligne_debut, 1), Cells(ligne_fin, 1)) 'légende
Set r2 = Range(Cells(ligne_debut, 6), Cells(ligne_fin, 9)) 'plage1
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select

Set ch3 = Worksheets(feuille).ChartObjects.Add(500, 30, 400, 250)
ch3.Chart.ChartWizard Source:=Sheets(feuille).myMultiAreaRange, _
gallery:=xlColumn, Format:=4, PlotBy:=xlRows, CategoryLabels:=1, SeriesLabels:=1, Title:='Resp client', _
CategoryTitle:='mois', ValueTitle:='nombre de retours'

Merci de votre aide.
 
C

christophe

Guest
bonsoir,
après quelques recherches et tests, j'ai trouvé la solution.


Dim ch3 As ChartObject
Dim r1 As Range, r2 As Range, r3 As Range, myMultiAreaRange As Variant
Set r1 = Range(Cells(ligne_debut, 1), Cells(ligne_fin, 1))
Set r2 = Range(Cells(ligne_debut, 6), Cells(ligne_fin, 9))
Set r3 = Range(Cells(ligne_debut, 11), Cells(ligne_fin, 11))
Set myMultiAreaRange = Union(r1, r2, r3)
myMultiAreaRange.Select

Set ch3 = Worksheets(feuille).ChartObjects.Add(500, 30, 400, 250)
ch3.Chart.ChartWizard Source:=myMultiAreaRange, _
gallery:=xlColumn, Format:=4, PlotBy:=xlRows, CategoryLabels:=1, SeriesLabels:=1, Title:='Resp client', _
CategoryTitle:='mois', ValueTitle:='nombre de retours'

je reste toutefois intéressé par une méthode plus orthodoxe !
 

Statistiques des forums

Discussions
312 272
Messages
2 086 689
Membres
103 372
dernier inscrit
BibiCh