VBA corréler les couleurs des pts d'un nuage aux couleurs de remplissage des cellules

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

Tioums

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je voudrais un code qui me permette de corréler les couleurs des points de mon graphique (nuage de points) à celles du remplissage des cellules correspondantes du tableau, peut importe la plage de donnée sélectionnée pour le graphique (j'utilise le même graphique pour mon analyse mais j'ai beaucoup de plages de données à utiliser). Je précise que mes données sont déjà triées et que les plages à sélectionner se suivent dans mon tableau.

J'ai 3 colonnes (les données démarre à la deuxième ligne) :
- colonne A : Noms
- colonne B : conditionnements
- colonne C : Prix

J'ai en partie réussi avec un code que j'ai trouvé sur un autre post :

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

Le problème avec ce code est qu'il ne fonctionne que si la plage de donnée sélectionnée pour le graphique commence à la deuxième ligne (première ligne de données). Si je prends une plage qui commence plus bas dans mon tableau les couleurs des points reprennent l'ordre des couleurs du début du tableau.

Je remercie à l'avance ceux qui se pencheront sur mon problème.

Cordialement,
 

Pièces jointes

Re : VBA corréler les couleurs des pts d'un nuage aux couleurs de remplissage des cel

Bonjour Tioums et bienvenue sur le forum....

Essaie ceci, ça devrait fonctionner. Le truc consister à déterminer la plage qui contient les données. Pour ce faire, j'ai réutilisé un bout de code dans une autre de tes macros

VB:
Sub ModifCouleur2()
    Dim xVals As String, i As Integer
    
    ActiveSheet.ChartObjects("Graphique 1").Activate

   'Store the formula for the first series in "xVals". >> Permet de trouver la plage des cellules (colonne B)
   xVals = ActiveChart.SeriesCollection(1).Formula

   'Extract the range for the data from xVals.
   xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
      Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
   xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
   Do While Left(xVals, 1) = ","
      xVals = Mid(xVals, 2)
   Loop


  For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
    ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
     Range(xVals).Cells(i, 2).Interior.ColorIndex               'Range(xVals).cells(i,2) correspond à la cellule dans la colonne C
  Next i
End Sub

A+
 
- 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

Retour