Coordonnées relatives pour créer un graphique sous VB

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 !

Charly88

XLDnaute Occasionnel
Re-bonjour à tous, en lien direct avec [thread=103683]mon post de ce matin[/thread], je souhaite créer un générateur de graphique et pour cela j'essaie de lui coller des valeurs relatives... et c'est là que ça coince.
Dans le fichier ci-joint (adresse non-reconnue ??), j'ai tout d'abord enregistré un exemple d'histogramme par une macro puis j'ai essayé de traduire la ligne de source. (module 1)

J'ai fait de même pour un graphique avec des lignes (module 2) qui lui a la particularité d'avoir des cellules et non des plages entières comme bases.

Dans le 1er cas, j'ai un début avec plantage, dans le 2è j'ai plantage sans discussion.

Test de graphes

Help et merci d'avance pour vos contributions.
 
Re : Coordonnées relatives pour créer un graphique sous VB

Remonte petit topic !

Je rajoute les codes des 2 cas pour voir le problème directement.


1er cas avec des plages de données :
Code:
[i]'Tentative pour faire un histo empilé comme sur le chart1

' La traduction plante mais donne tout de même le chart2 donc très proche
'(alors que paradoxalement il plante (=jaunit) dès la ligne de source)

...[/i]
    Charts.Add
    ActiveChart.ChartType = xlColumnStacked
    
[i]    'ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B2:F3,B5:F6"), PlotBy:=xlRows
     
     'je traduis la ligne précédente par :[/i]
[b]    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Union(Range(Cells(2, 2), Cells(3, 6)), Range(Cells(5, 2), Cells(6, 6))).Select, PlotBy:=xlRows[/b]
    
    ActiveChart.SeriesCollection(1).Name = "=Sheet1!R3C1"
...


2è cas avec des cellules seules comme coordonnées :
Code:
[i]' Tentative pour un graphe en ligne (résultat en chart5) avec des données cellules par cellules
' ici le kg de confiture de cerise

' La traduction plante totalement.[/i]

    Charts.Add
    ActiveChart.ChartType = xlLine
    
    'ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B6,B13,B20,B27,K6,K13,K20,K27"), PlotBy:=xlColumns
    
    'je traduis la ligne précédente par :
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Union(Cells(6, 2), Cells(13, 2), Cells(20, 2), Cells(27, 2), Cells(6, 11), Cells(13, 11), Cells(20, 11), Cells(27, 11)), PlotBy:=xlColumns
    ActiveChart.SeriesCollection(1).XValues = _
        "=(Sheet1!R2C1,Sheet1!R8C1,Sheet1!R15C1,Sheet1!R22C1)"

Dans le 2è cas, il est probable que Union ne soit pas adapté ou que je l'emploie mal, dans le 1er... je ne sais pas, peut-être que le .select ne lui plait pas mais sans, c'est pire.
 
Re : Coordonnées relatives pour créer un graphique sous VB

Bonjour,

Pour le premie Module, le pb vient du fait que la methode Union s'applique à Application et non pas à Sheets ..

Sub Test()
Set MaZone = Application.Union(Range(Cells(2, 2), Cells(3, 6)), Range(Cells(5, 2), Cells(6, 6)))
Charts.Add
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceData Source:=MaZone, PlotBy:=xlRows
ActiveChart.SeriesCollection(1).Name = "=Sheet1!R3C1"
End Sub


Idem pour le module2

Sub Test2()
Set MaZone = Application.Union(Cells(6, 2), Cells(13, 2), Cells(20, 2), Cells(27, 2), Cells(6, 11), Cells(13, 11), Cells(20, 11), Cells(27, 11))
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=MaZone, PlotBy:=xlColumns
End Sub

Il faut définir la zone avant d'entrer dans le graphique

Voir le fichier joint

PS - Oui, il faut enlever le Select dans le premier
 

Pièces jointes

Dernière édition:
Re : Coordonnées relatives pour créer un graphique sous VB

Mais mais mais... ho, mais ho, mais alors merci, mais yes, mais bravo mais un ENORME MERCI ! :-D !
Maintenant, j'essaie de me dépatouiller et de mettre le résultat plus tard en lien, le plus gros est fait je pense.
 
- 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

Discussions similaires

Réponses
1
Affichages
411
Retour