un graphe avec des colonnes non-contigues

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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.
 
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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour