1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Sub Couleur_Graph_Feuille(sTblParam As String, eOnglet As String)
'Mise à jour des couleurs des graphiques selon les données de la table pour la feuille en cours
'On donne aux séries du graphique les couleurs passées
'en paramètres pour chaque contrat
'Paramètre : sTblParam, entrée, tabeau contenant les contrats et les couleurs associées
Dim tblParam As ListObject, SerieContrat As Series
Dim varParam As Variant, iBcle As Integer
Dim iOnglet As Integer, iGraph As Integer
Dim Ch As Chart
'On initalise la variable colonne du tableau passé en paramètre (ce tableau doit être dans l'onglet Paramétrages)
Set tblParam = ActiveWorkbook.Sheets("Paramétrages").ListObjects(sTblParam)
'On met en table le tableau
varParam = tblParam.DataBodyRange
'Recherche les graphiques incorporés dans la feuille
For iGraph = 1 To Sheets(eOnglet).ChartObjects.Count
'On active le graphique afin de pouvoir travailler dessus
Sheets(eOnglet).ChartObjects(iGraph).Activate
'Avec le graphique en cours
With ActiveChart
'On passe en revu toutes les séries
For Each SerieContrat In .SeriesCollection
'On cherche dans tous les contrats
For iBcle = LBound(varParam) To UBound(varParam)
'On teste si l'on a le même nom que le paramètre
If InStr(1, SerieContrat.Name, varParam(iBcle, 1)) <> 0 Then
'On applique la couleur à la série
SerieContrat.Interior.ColorIndex = varParam(iBcle, 2)
End If
'On teste s'il s'agit de la capacité
If InStr(1, SerieContrat.Name, "Capa") <> 0 Then
'on change les colonnes en courbe
SerieContrat.ChartType = xlLine
'on change la couleur de la ligne en rouge
SerieContrat.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
'On change la taille de la ligne
SerieContrat.Format.Line.Weight = 2.25
End If
Next iBcle 'contrat suivant
Next 'Série suivante
End With 'Fin du graphique en cours
Next iGraph 'Graphique suivante
'On libère la mémoire
Set tblParam = Nothing
End Sub |
Partager