![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
Bonjour à tous,
J'édite un graphique (camembert ou histogramme avec plusieurs séries) que je remets à jour régulieremenr. je voudrais utiliser toujours la même couleur pour la même série "en automatique". (Le nombre de série peut varier, ce qui m'oblige à modifier une à une les couleurs du graphique ...). Je joins un fichier d'exemple pour plus de facilité. Seb! |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2006
Version Excel : Excel 2003 (PC)
Messages: 1 821
|
Bonsoir
Regarde si cela te convient J'ai prévus 12 series dans les couleurs du graph
__________________
![]() L'imagination est plus importante que le savoir.... A . Einstein. |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
Merci beaucoup pour la réponse ! (et la rapidité )
![]() La solution est bien, mais il reste 2 points : -Si la série "A" se trouve en ligne 8 la couleur de la série est jaune, moi je voudrais que la série "A" reste en rouge sur le graphe (comme au départ) - ensuite si je supprime la ligne la serie "F" (suppression de la ligne) les couleurs sont décalées : la série "G" est en noir alors qu'elle devrait être en marron ci-joint le fichier : Seb ! |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2006
Version Excel : Excel 2003 (PC)
Messages: 1 821
|
re
Je ne pense pas que ce soit possible ce que tu demande. Les couleurs sont affectés en fonction de la premiere série, la macro ne peut pas testé les valeurs de cellule et mettre une couleur en fonction de cela. ( mais je ne suis pas un expert en macro)
__________________
![]() L'imagination est plus importante que le savoir.... A . Einstein. |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 230
|
Bonsoir seb2, l'ami CB60,
Pas certain d'avoir vraiment cerné la totalité du problème, mais vous trouverez en pièce jointe ce que j'ai compris de votre échange... Le code utilisé est le suivant : Code:
DANS LE MODULE DE CODE DE LA FEUILLE
Private Sub Worksheet_Change(ByVal Target As Range)
'myDearFriend! - www.mdf-xlpages.com
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("B6:B30")) Is Nothing Then
Set Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
If Not Cel Is Nothing Then
Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) _
.Points(Target.Row - 5).Interior.Color = Cel.Interior.Color
End If
End If
End Sub
Cordialement, |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2006
Version Excel : Excel 2003 (PC)
Messages: 1 821
|
Bonjour à tous
Merci MDF pour ce joli Boulot, heureusement que j'avais mis ça: mais je ne suis pas un expert en macro ![]() Il me reste beaucoup à apprendre
__________________
![]() L'imagination est plus importante que le savoir.... A . Einstein. |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
Bonjour à tous !
Bravo MDF ! c'est super ce que tu as fait ! (juste une petite remarque, lorsque on change la couleur dans corresp couleurs, il faut "retaper" le nom de la serie pour qu'excel fasse la modif) En tout cas ton fichier me va très bien Merci beaucoup !Seb! |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
C'est encore moi, je voudrais faire la même chose avec un histogramme, je pensais y arriver, mais je ne connais pas suffisament VBA. Je joins le fichier pour exemple. (En faite je voudrais à la fois un camembert et un histogramme sur la même feuille)
Merci d'avance Seb! |
|
|
|
|
|
#10 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 230
|
Bonjour seb2, CB60, le Forum,
Citation:
Seb2, tu trouveras ci-joint ton fichier modifié selon tes souhaits. J'ai dû modifier légèrement la procédure pour trouver un traitement commun aux 2 types de graphique : Code:
DANS LE MODULE DE CODE DE LA FEUILLE
Private Sub Worksheet_Change(ByVal Target As Range)
'myDearFriend! - www.mdf-xlpages.com
Dim Graph As ChartObject
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("B6:B30")) Is Nothing Then
Set Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
If Not Cel Is Nothing Then
Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
For Each Graph In ActiveSheet.ChartObjects
Graph.Chart.Legend.LegendEntries(Target.Row - 5).LegendKey.Interior.Color = Cel.Interior.Color
Next Graph
End If
End If
End Sub
Par ailleurs, ta remarque est bonne, seule la modification du nom de série en feuille principale peut faire agir cette macro. Ainsi, en cas de modification des couleurs en feuille "Corresp.Couleurs", il faut obligatoirement revalider le nom de série correspondant en feuille principale pour déclencher le traitement. Cordialement, |
|
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
... C’est encore moi ...
Il y a un petit bug dans la macro que je n’arrive pas à résoudre, à partir de la lettre G (cellule B12) lorsque je retape cette lettre pour mettre à jour la couleur j’ai le message d’erreur suivant : Impossible de lire la propriété Legendentries de la classe legend. ... Je ne comprends pas pourquoi le problème apparait seulement à partir de G. Seb ! ![]() |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 230
|
Re,
Ton graph "histogramme" ne possède pas de série (et donc de légende) au-delà de F... d'où l'erreur ! Peut-être faudrait-il que tu revois de façon logique tes graphiques. Sinon, si tu veux contourner ce message causé, il est vrai, par un seul des deux graphiques : Code:
DANS LE MODULE DE CODE DE LA FEUILLE
Private Sub Worksheet_Change(ByVal Target As Range)
'myDearFriend! - www.mdf-xlpages.com
Dim Graph As ChartObject
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("B6:B30")) Is Nothing Then
Set Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
If Not Cel Is Nothing Then
Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
On Error Resume Next
For Each Graph In ActiveSheet.ChartObjects
Graph.Chart.Legend.LegendEntries(Target.Row - 5).LegendKey.Interior.Color = Cel.Interior.Color
Next Graph
On Error GoTo 0
End If
End If
End Sub
|
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
Bonjour MDF !
Encore merci ! T'est vraiment sympa. J'ai fais les modif dans le fichier et tout marche bien. Je joins ici la dernière version du fichier avec un camembert et un histogramme. Ce fichier permet de définir les couleurs de la légende des deux graphes et aussi de les modifier. Les deux graphes comportent 26 series (ce qui est beaucoup trop) mais on peut toujours en supprimer. Bavo MDF! Seb ! |
|
|
|
|
|
#15 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2007
Messages: 20
|
Bonjour à tous !
J'ai voulu améliorer le fichier pour obtenir un graphique dynamique avec la commande DECALER. Mais j'ai des problème avec l'histogramme. Depuis la modification, l'affichage des valeurs et de la légende est faux pour l'histogramme, il y a une permutation circulaire de la légende (et des valeurs) à chaque mise à jour. Et je n'arrive pas à regler le problème. Ci-joint le fichier : |
|
|
|
| ANNONCES | |
![]() |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| couleurs sur un graphique | hiul | Forum Excel | 4 | 03/09/2007 13h23 |
| Forcer l'ouverture d'un classeur à une feuille | tof | Forum Excel | 4 | 28/03/2006 16h11 |
| couleurs d'un graphique | Cruz | Forum Excel | 1 | 08/02/2006 21h34 |
| Forcer impression d'un texte | Papy Novice | Forum Excel Downloads - Archives | 2 | 20/02/2005 20h56 |
| Couleurs des barres de graphique | nico | Forum Excel Downloads - Archives | 2 | 11/05/2004 09h44 |