je travail sur un graphique issus d'un tableau croisé dynamique. ce graphique (représentation en camembert), grace au TCD peut changer en fonction des séries que je veux visualiser. Mais la légende change à chaque fois. Par exemple j'ai 10 séries, automatiquement excel leur attribue une couleur, rose série 1, bleu série 2 etc.., si je n'utilise que deux séries, la deux et la quatre par exemple, la série deux sera rose et la quatre sera bleu. Hors j'aimerais fixer une couleur pour chaque série sans avoir à modifier à chaque fois la couleur de la légende, je veux que la série 1 reste rose et que la série deux reste bleu etc...Est-ce possible? [°)]
----------
Bipbipcoyote 
----------
Bipbipcoyote 
et si tu faisais directement un tableau comme celui ci, car je ne vois pas l'intérêt de faire un tableau croisé car rien ne t'empêche de mettre en colonne TOUS les légumes et fruits pour TOUS les mois, la différence c'est que tu peux avoir des cellules qui ne contiennent RIEN ou 0 (Zéro)...Avantage, c'est que leur emplacement dans le graphique est réservé....et donc leur couleur...Pas besoin alors de macro, le graphe peut être un peu plus confus, il est vrai....Mon tableau croisé dynamique est composé de 15 lignes, et 10 colonnes, par exemple 15 types de fruits, et 10mois de l'année
----------
Bipbipcoyote 
----------
Bipbipcoyote 
oui, il y a plusieurs possibilités pour parvenir à ses fins...Ici l'optimisation du code n'est pas trop importante, il y a tellement peu de données à traiter....mais ta solution est plus "correcte"j'ai introduit un entier i, et la fonction For i=1 to 19 next i
----------
Bipbipcoyote 
, qui renvoie à une boite de dialogue indiquant que le job est fini.on error goto
serie "pomme", pointer"janvier").
.série "somme", pointer "pomme"
----------
Bipbipcoyote 
Dim i As Integer
For i = 1 To 25
If ActiveChart.SeriesCollection(i).Name = "pomme" Then
Sheets("Légende").Select
Range("A1").Select
Cells.Find(What:="pomme", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Select
couleur = ActiveCell.Interior.ColorIndex
Sheets("fruits").ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = couleur 'on y place la couleur de la cellule
.Pattern = xlSolid
End With
ElseIf ActiveChart.SeriesCollection(i).Name = "poire" Then
Sheets("Légende").Select
Range("A1").Select
Cells.Find(What:="10", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Select
couleur = ActiveCell.Interior.ColorIndex
Sheets("fruits").ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = couleur
.Pattern = xlSolid
End With
Le post anonyme est désactivé.
Merci de vous identifier
« Forum technique (liste des messages)11 enregistrements / page 1/1
Le saviez vous ? Vous pouvez installer cette bannière ↑ gratuitement sur votre site !