Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 [RESOLU] Problème de code VBA pour colorier nuage de points

  • Initiateur de la discussion Initiateur de la discussion THL
  • 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 !

THL

XLDnaute Nouveau
Bonjour à tous,

J'utilise cette macro pour colorier les points (où autre marquage du graph losange, triangle...) d'un graphique selon la couleur des cellules où se trouvent les données:

Sub ModifCouleur2()
ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
ActiveSheet.Cells(i + 3, 3).Interior.ColorIndex
Next i
End Sub

Par contre cette macro ne fait que colorier le contour du marquage mais pas l'intérieur qui reste blanc (voir feuille Complex).

Pourriez vous svp m'aider pour que l'intérieur du point (où autre marquage du graph losange, triangle...) soit également colorié avec la même couleur?

De plus cela ne fonctionne pas tout le temps (voir feuille Simple).

Ci-joint le fichier exemple.

Merci d'avance à tous.
 

Pièces jointes

Bonjour,

Merci. Cela fonctionne au moins à moitié puisque le contour des marques se colorie bien dans la même couleur que celle de la cellule, mais le problème est de pouvoir colorié également l'intérieur de ses points.

Cdlt
 
...alors, je ne sais pas...j'ai juste essayé ceci :

Sub Colorpoint()
Dim Coul As Double

ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
Coul = ActiveSheet.Cells(i + 3, 3).Interior.Color
With ActiveChart.SeriesCollection(1).Points(i)
.Format.Line.ForeColor.RGB = Coul
.Format.Fill.ForeColor.RGB = Coul
End With
Next i
End Sub

qui fonctionne avec des couleurs normales de cellules mais pas avec les couleurs MFC...

Désolé de ne pouvoir en dire plus...

Cordialement
 
Merci tout de même de votre contribution mais j'ai besoins de la MFC car ce sera appliqué à plus de 1000 lignes donc manuellement ça va être long sauf à faire un tri par valeur et colorier manuellement (solution par défaut).
Encore merci.
J'espère que quelqu'un aura une idée.
Cdlt
 
Au cas où je l'ai modifié un peu car la VBA coloriait les les marques à la suite sans prendre en compte le nom de la série donc si deux premières lignes étaient rouges les deux premières marques du graphique étaient rouges, donc sans prise en compte de l'ordonnée.
Mais toujours pas de solution en MFC...

Sub Colorpoint()
ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).Format.Line.ForeColor.RGB = _
ActiveSheet.Cells(i + 3, 3).Interior.Color
ActiveChart.SeriesCollection(1).Points(i).Format.Fill.ForeColor.RGB = _
ActiveSheet.Cells(i + 3, 3).Interior.Color
Next i
End Sub
 
Dans ce que j'ai donné plus haut, si l'on remplace la ligne :

Coul = ActiveSheet.Cells(i + 3, 3).Interior.Color

par :

Coul = ActiveSheet.Cells(i + 3, 3).DisplayFormat.Interior.Color

cela fonctionne avec une MFC...

Cordialement
 
Merci beaucoup, problème résolu!!!
Donc voici la macro finale si elle devait servir à d'autres:

Sub Colorpoint()
ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).Format.Line.ForeColor.RGB = _
ActiveSheet.Cells(i + 3, 3).DisplayFormat.Interior.Color
ActiveChart.SeriesCollection(1).Points(i).Format.Fill.ForeColor.RGB = _
ActiveSheet.Cells(i + 3, 3).DisplayFormat.Interior.Color
Next i
End Sub

Cdlt
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…