Colorier marqueur graphique à partir de la couleur de police de cellules
S
Bonjour à tous !
J'espère que tout le monde va bien !
Je me permets de vous envoyer ce sujet sur lequel vous pourrez potentiellement m'aider !
J'ai une série de donnée en C24:G39 qui forme un graphique en nuage de point. Je souhaitais faire une macro qui , quand je la lance , récupère la couleur de la police de chaque cellule de cette plage de donnée et la donne ensuite au marqueur correspondant sur le graphique , pour pouvoir exécuter cette opération rapidement. J'ai lancé ce code , ça a marché une fois , puis ça n'a plus fonctionné ensuite , si vous avez des idées pour modifier correctement ce code afin qu'il puisse fonctionner !
Merci beaucoup , je vous souhaite une excellente journée ,
Shadow
Sub MettreAJourCouleurMarqueurs()
Dim ws As Worksheet
Dim chart As ChartObject
Dim series As series
Dim cell As Range
Dim col As Long
Dim ligne As Long
' Définir la feuille de travail
Set ws = ThisWorkbook.Sheets("KPI")
' Définir le graphique
Set chart = ws.ChartObjects("Graphique 8")
' Vérifier si le graphique est un nuage de points (XY Scatter Chart)
If chart.chart.ChartType = xlXYScatter Then
' Parcourir les colonnes C à G (correspondant aux colonnes de votre tableau)
For col = 3 To 7 ' Colonnes C à G
' Réinitialiser l'indice de ligne à 4
ligne = 4
' Parcourir les cellules de la colonne du tableau
For Each cell In ws.Range(ws.Cells(24, col), ws.Cells(39, col))
' Récupérer la couleur de police de la cellule
Dim couleurCellule As Long
couleurCellule = cell.Font.Color
' Mettre à jour la couleur du marqueur de la série en cours
chart.chart.SeriesCollection(col - 2).Points(ligne - 3).MarkerBackgroundColor = couleurCellule
chart.chart.SeriesCollection(col - 2).Points(ligne - 3).MarkerForegroundColor = couleurCellule
' Passer à la ligne suivante
ligne = ligne + 1
Next cell
Next col
Else
MsgBox "Le graphique n'est pas un nuage de points (XY Scatter Chart). Ce code fonctionne uniquement avec les nuages de points."
End If
End Sub