Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 22/02/2005, 17h48   #1 (permalink)
Heriss
Guest
 
Messages: n/a
Par défaut couleur graphe VB

Bonjour le forum,

Je cherche à affecter une couleur à des secteurs d'un diagramme en fonction de la valeur de l'étiquette.

Dans un premier temps je veux que la macro utilise la plage de cellules sélectionnée pour construire mon graphe (j'ai déjà un plantage pour récuppérer l'adresse de la plage mon code VB -si on peut appeler cela un code vu le nombre d'erreurs- ).

Ensuite je souhaiterai que le code modifie les couleurs du graphe selon un tableau de références couleurs. (là je n'ose même plus dire que c'est du code VB tant il y a de manques)


Merci d'avance pour votre aide et bonne fin de journée
Heriss

Message édité par: heriss, à: 25/02/2005 10:54
Fichiers attachés
Type de fichier : zip Affectation-couleur-diagramme_20050222174800.zip (2,2 Ko, 8 affichages)
  Réponse avec citation
ANNONCES
Vieux 25/02/2005, 10h55   #2 (permalink)
XLDnaute Junior
 
Date d'inscription: février 2005
Messages: 58
Par défaut Re:couleur graphe VB

Re-bonjour le forum,

Voici le fichier zippé... sorry!!!

Heriss [file name=Set_Color_to_chart.zip size=9654]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Set_Color_to_chart.zip[/file]
Fichiers attachés
Type de fichier : zip Set_Color_to_chart.zip (9,4 Ko, 13 affichages)
heriss est déconnecté   Réponse avec citation
Vieux 25/02/2005, 18h38   #3 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 714
Par défaut Re:couleur graphe VB

bonsoir Heriss

j'espere que cet exemple répondra à ta demande
( macro à placer directement dans ton classeur )


Sub creationGraphique()
Dim i As Byte

Charts.Add ' ajout graphique
With ActiveChart
.ChartType = xl3DPie 'secteur 3D
.SetSourceData Source:=Sheets('Données').Range('C5:C7'), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:='Données' 'emplacement du nouveau graphique
End With

For i = 1 To 3 'boucle pour attribution couleurs
ActiveChart.SeriesCollection(1).Points(i).Interior .ColorIndex = _
Sheets('Index couleur').Cells(i + 1, 2)
Next i

End Sub


bon week end
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 26/02/2005, 12h28   #4 (permalink)
XLDnaute Junior
 
Date d'inscription: février 2005
Messages: 58
Par défaut Re:couleur graphe VB

Bonjour Miche Xld,
Bonjour le forum,

Merci beaucoup pour le code qui va m'aider à avancer sur mon problème. En revanche cela ne réponds pas tout à fait à ce que je souhaite. Je n'avais pas été clair (car comme je vis en continu avec ça je ne m'imagine pas que d'autres ne puissent pas être dans le même trip) et ce que je cherche c'est:

- pour la première partie du code, pouvoir obtenir l'adresse de la sélection de manière à pouvoir faire varier la plage de donnée (j'avais initialement saisi en dur l'adresse B5:C7 mais cela pose un problème si le nombre de données varie)

- pour la deuxième partie ta ligne de code il faut que la couleur soit basée sur la valeur de l'étiquette et non pas sur non numéro. En clair, prendre la valeur 'France' (qui selon les graphes ne sera pas forcément en première place) et faire une recherche dans la table de référence pour trouver la couleur correspondante.

Voila pour les précisions.
Merci beaucoup de ton aide et si tu veux continuer ne t'en prive pas
;-)

Bon week-end,
Heriss
heriss est déconnecté   Réponse avec citation
Vieux 26/02/2005, 16h20   #5 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 714
Par défaut Re:couleur graphe VB

bonjour Heriss

tu peux tester cette adapatation


Code:
Option Compare Text
Sub creationGraphique_V02()
Dim i As Byte
Dim j As Integer, k As Integer
Dim Cell As Range

On Error Resume Next
ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete
On Error GoTo 0

'derniere ligne non vide dans la colonne A de la feuille 'Index couleur'
k = Sheets('Données').Range('C65536').End(xlUp).Row

Charts.Add ' ajout graphique
With ActiveChart
.ChartType = xl3DPie 'secteur 3D
.SetSourceData Source:=Sheets('Données').Range('C5:C' & k), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:='Données' 'emplacement du nouveau graphique
End With

'nommer le nouveau graphique
ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Name = 'mongraph'

'derniere ligne non vide dans la colonne A de la feuille 'Index couleur'
j = Sheets('Index couleur').Range('A65536').End(xlUp).Row

For i = 1 To ActiveChart.SeriesCollection(1).Points.Count

For Each Cell In Sheets('Index couleur').Range('A2:A' & j)
'verifie que l'etiquette correspond au nom de l'index couleur
If Sheets('Données').Cells(4 + i, 2) = Cell Then
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = Cell.Offset(0, 1)
Exit For
End If

Next Cell

Next i
End Sub

bon week end
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 27/02/2005, 09h30   #6 (permalink)
XLDnaute Junior
 
Date d'inscription: février 2005
Messages: 58
Par défaut Re:couleur graphe VB

Bonjour Michel Xld,
Bonjour le Forum,

Une seule chose à dire 'Superbe' et surtout un grand merci pour ton aide.

Je pense que cette manip' d'affectation de couleurs en fonction de l'étiquette est susceptible d'intéresser d'autres personnes et que peut être que cela vaut le coup que tu la soumettes dans la section téléchargement.

Quant à moi, je vais essayer de digérer ton code.
Encore merci et bon week-end.

Heriss
heriss est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 18h55.


(C) 2006 Excel Downloads