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

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

  • PerformanceperStore_Example.xlsm
    31.6 KB · Affichages: 64

THL

XLDnaute Nouveau
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
 

mécano41

XLDnaute Accro
...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
 

THL

XLDnaute Nouveau
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
 

THL

XLDnaute Nouveau
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
 

THL

XLDnaute Nouveau
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
 

Discussions similaires