graph: trait et ligne de marquage par vba

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 !

Sheldor

XLDnaute Occasionnel
Supporter XLD
bonjour
je souhaite pouvoir manipuler le trait d'une série sur un graph sans impacter la ligne de marquage (le trait qui est autour du point)

voilà où j'en suis en pj

j'ai aussi essayé avec l'instruction border mais je ne peux pas lui attribuer une épaisseur sous forme de valeur (elle accepte apparemment xlthick etc) et s'il n'y a pas de trait je ne sais pas comment le mettre en "visible"

très grand merci pour votre aide
nico
 

Pièces jointes

re-bonjour,

je n'ai pas trouvé mais j'ai (un peu) avancé...
avec

ActiveChart.SeriesCollection(1).Format.Line.Visible = msoTrue
ActiveChart.SeriesCollection(1).Format.Line.Transparency = 1
ActiveChart.SeriesCollection(1).Border.Weight = 4

j'arrive à avoir un trait épais et pas de ligne de marquage mais je suis limité à 1/2/3/4 comme valeur d'épaisseur en utilisant "border"...
 
Hello,

Tu peux influencer sur les lignes de marquage avec :
ActiveChart.SeriesCollection(1).MarkerBackgroundColor = RGB(255, 0, 0) 'Pour du rouge ici
ActiveChart.SeriesCollection(1).MarkerForegroundColor = RGB(255, 0, 0) 'Pour du rouge ici

Ainsi en utilisant ce code j'arrive au résultat que tu souhaites :
VB:
With ActiveChart.SeriesCollection(1)
ActiveSheet.ChartObjects("Graphique 8").Activate
    .Format.Line.Visible = msoTrue
    .Format.Line.Weight = 5
    .MarkerSize = 10
    .MarkerBackgroundColor = RGB(255, 0, 0)
    .MarkerForegroundColor = RGB(255, 0, 0)
End With
 
bonjour Jauster,
merci beaucoup pour cette réponse
ça me semble une très bonne idée !
du coup la ligne de marquage s'additionne à la taille de mon point ce que je n'avais pas prévu mais je peux peut être la modifier en fonction, je vais explorer ça

encore merci
nico
 
pour que ça ne change pas la taille de mon point :

poids = 5

With ActiveChart.SeriesCollection(1)
.Format.Line.Visible = msoTrue
.Format.Line.Weight = poids
.MarkerSize = ActiveChart.SeriesCollection(1).MarkerSize - poids
.MarkerBackgroundColor = RGB(255, 0, 0)
.MarkerForegroundColor = RGB(255, 0, 0)
End With

par contre si j'ai une autre couleur de point je ne sais pas comment récupérer la couleur du MarkerBackgroundColor pour l'appliquer à MarkerForegroundColor ...
 
en résumé pour ceux qui liraient ça plus tard...

- on ne peut pas agir sur le trait d'un graph "nuage" sans agir sur la ligne de marquage (le trait qui entoure le point)
- la jolie solution grâce à Jauster pour contourner ça: passer la ligne de marquage de la même couleur que le point et redimensionner le point pour que la somme (épaisseur de la ligne de marquage + taille du point) = taille d'origine du point

poids = 5 ' l'épaisseur souhaitée

With ActiveChart.SeriesCollection(1)
.Format.Line.Visible = msoTrue
.Format.Line.Weight = poids
.MarkerSize = ActiveChart.SeriesCollection(1).MarkerSize - poids
.MarkerForegroundColor = .MarkerBackgroundColor
End With

- la limite: on ne peut pas avoir un point plus petit que l'épaisseur de la ligne
 
- 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
Retour