changer l'épaisseur de trait pour plusieurs séries de données

halaixouille

XLDnaute Nouveau
Bonjour,

Voila, j'ai un graphique type nuage de points avec courbe droite. Ce graphique comporte plus de 50 courbes! Or je veux que chaque courbe ait une épaisseur de 0,25pts.

Y'a t-il un moyen de modifier en une seule fois les épaisseurs de trait de toutes mes séries de données présente sur une même zone graphique?

Ou dois-je sélectionner série par série et faire la modification de style?


Merci beaucoup
 

Hulk

XLDnaute Barbatruc
Re : changer l'épaisseur de trait pour plusieurs séries de données

Hello,

A tester... pour trois séries.
Code:
Sub test()
    
    Sheets("Feuil1").ChartObjects("Graphique 1").Activate 'A adapter.
    
    For i = 1 To 3
        ActiveChart.SeriesCollection(i).Select
        With Selection.Border 'Lignes
            .Weight = xlThin
        End With
        With Selection 'Points
            .MarkerSize = 2
        End With
    Next i

End Sub
 

kjin

XLDnaute Barbatruc
Re : changer l'épaisseur de trait pour plusieurs séries de données

Bonsoir,
S'il n'y a qu'un seul graphique dans la feuille
Code:
Sub Halaxouille()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(1).Chart
    For i = 1 To cht.SeriesCollection.Count
        With cht.SeriesCollection(i).Border
            .Weight = xlMedium '0,25 ???
        End With
    Next
End Sub
A+
kjin
 

soenda

XLDnaute Accro
Re : changer l'épaisseur de trait pour plusieurs séries de données

Bonsoir le fil, halaixouille, Hulk, kjin

D'après l'aide Excel,
SeriesCollection renvoie un objet qui représente soit une seule série, soit une collection de toutes les séries dans le graphique ...

On doit donc pouvoir écrire la ligne suivante, sans passer par une boucle :
Code:
ActiveChart.SeriesCollection.Border.Weight = xl...
A plus
 

kjin

XLDnaute Barbatruc
Re : changer l'épaisseur de trait pour plusieurs séries de données

Bonjour,
D'après l'aide Excel,
SeriesCollection renvoie un objet qui représente soit une seule série, soit une collection de toutes les séries dans le graphique ...
Il est vrai et on peut écrire
Code:
Set cht = ActiveSheet.ChartObjects(1).Chart
Set sc = cht.SeriesCollection
On doit donc pouvoir écrire la ligne suivante, sans passer par une boucle :
Code:
ActiveChart.SeriesCollection.Border.Weight = xl...
Bah non, la propriété "Border" ne s'applique qu'à un seul item, s'agissant de séries d'un graphique
A+
kjin
 

halaixouille

XLDnaute Nouveau
Re : changer l'épaisseur de trait pour plusieurs séries de données

La solution de kjin marche vraiment super bien, j'ai juste mis xlthin, ce qui fait un trait trait fin.

Merci beaucoup

J'ai juste une petite question supplémentaire, j'espère ne pas abuser :

Il y a donc beaucoup de courbes sur mon graphe : peut-on, dans la légende par exemple à coté de chaque série, rajouter un petit bouton de formulaire pour afficher/masquer la courbe associée à la série?

Merci
 

kjin

XLDnaute Barbatruc
Re : changer l'épaisseur de trait pour plusieurs séries de données

Bonsoir,
Afficher/Masquer n'est point possible
La seule façon de rendre invisible une courbe est de lui mettre la même couleur que le fond, solution pour les fainéants, ou plus logiquement de l'effacer; il faudra alors la rajouter à la demande.
Mais pas de fichier, pas d'exemple...
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 453
Messages
2 088 553
Membres
103 881
dernier inscrit
malbousquet