Coloration automatique d'un histogramme

ElScribe

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau ici, et je viens vous exposer un problème dont je n'ai pas vu de solutions claires sur internet.

J'ai donc un fichier, joins en version simplifiée, qui recense des valeurs en fonction de mois. J'ai ajouté une conditionnelle à mes valeurs, afin d'obtenir un code couleur relativement clair sur le tableau. je voudrais que ce code couleur se retrouve sur le graphique, mais que cela se fasse automatiquement...

J'ai trouvé quelques solutions sur le nets, mais qui étaient plus de la "bouine" (jouer avec l'intervention de colonne supplémentaires et avec les supperpositions) mais cela ne me semble pas satisfaisant...
J'ai également vu qu'une fonction "graphique dynamique" devait exister sur des versions plus récentes de excel, mais je n'ai ni le logiciel, ni la confirmation... en tout cas, sur le 2003 que j'utilise, rien de tel...

Je suis plutôt débutant en codage visual basic, mais je me dis qu'il ne va pas y avoir d'autres façons de résoudre mon problème.

Bref, je galère pas mal, donc j'espère que quelqu'un pourra me filer un coup de main la dessus. Cependant, j'espère vraiment comprendre la manip, et pas juste appliqué un c/c que je ne saurais ni expliqué, ni réparer en cas de panne!

merci d'avance en tout cas!

P.S: dans l'exemple, je n'ai "que" 3 codes couleurs, mais dans mon fichier, il y a 5 conditionnelles de couleurs à faire apparaitre sur le graphique.
 

Pièces jointes

  • test graph couleur.xls
    22 KB · Affichages: 49
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Coloration automatique d'un histogramme

Bonjour

le terme de graphique dynamique fait simplement référence au fait que les données du graphique se mettent automatiquement à jour quand on ajoute des données au tableau source et on peut tout à fait le faire avec toutes les versions d'excel. Mais ce n'est pas la solution à ta question.
Tu as plusieurs solutions : sans macro :
tu fais trois colonnes que tu remplis en fonction de la valeur de ton résultat ou que tu laisses vide
tu crées ton graphique sur les 3 colonnes
tu mets la superposition à 100
c'est et de loin le plus simple si tu n'es pas à l'aise avec les macros.
Sinon tu as différentes macros dispos ici
Ce lien n'existe plus
Ce lien n'existe plus
 

Pièces jointes

  • Copie de test graph couleur.xls
    35.5 KB · Affichages: 59

ElScribe

XLDnaute Nouveau
Re : Coloration automatique d'un histogramme

Bonjour Misange,

Déja, merci pour cette réponse rapide!

Pour la première solution que tu proposes, j'y vois deux inconvenients:

- le premier la lourdeur, j'avais mis un fichier "allégé" de mes données. l'application de cette méthode va devoir être répété un certain nombre de fois, car le fichier réel comprend plus de valeur et plus de conditions (5 conditions, donc 5 "couleurs" ...donc, 5 colonnes à remplir avec des "si").

- l'espect global du tableau, qui sera remplit de colonnes vides et pleines, et que je devrais caché pour rendre le document lisible pour d'autres utilisateurs (et donc plus de sources d'erreurs si d'autres devaient le modifier).

Je crois donc qu'il va être indispensable pour moi de passer par de la macro... pas facile, mais bon, c'est ça qui est bien avec excel, se creuser la tête des heures pour avoir un résultat!

bref, je vais gentiment faire "Outils/Macros/NouvelleMacro" et me creuser la tête!

Je pense revenir vers vous quand dans 1 heure, j'hésiterai à pas balancer le PC par la fenêtre ! les deux macros fournies devraient me permettre de partir du bon pied!

Merci encore!
 

ElScribe

XLDnaute Nouveau
Re : Coloration automatique d'un histogramme

Bonjour à vous!

Bon, je reconnais que je me creuse biebn la tête, mais le fichier de François va peut-être bien m'aider considérablement.

Hélas, problème d'exécution de la macro sur cette ligne :

NbP = ActiveChart.SeriesCollection(1).Points.Count

je vous colle ci-dessous la macro complète...

Option Base 1
Sub test()
Dim Montab() As Variant
Dim NbP As Integer
NbP = ActiveChart.SeriesCollection(1).Points.Count
ReDim Montab(NbP) As Variant
Montab = ActiveChart.SeriesCollection(1).Values
For i = 1 To NbP
With ActiveChart.SeriesCollection(1).Points(i).Format.Fill
If Montab(i) < 2 Then
.ForeColor.RGB = RGB(255, 0, 0)
ElseIf Montab(i) < 5 Then
.ForeColor.RGB = RGB(0, 255, 0)
Else
.ForeColor.RGB = RGB(0, 0, 255)
End If
End With
Next i
End Sub



peut-être est-ce juste un problème de compatibilité avec 2003?

Merci en tout acs pour vos remarques... j'adore me casser la tête avec excel, mais ne connaissant que peu les macro, j'avoue que ça reste compliqué ;)
 

Efgé

XLDnaute Barbatruc
Re : Coloration automatique d'un histogramme

Bonjour ElScribe, Bonjour Misange :) , Bonjour Gardien de phare, Une version du code de "Gardien de phare" compatible 2003. Cordialement
 

Pièces jointes

  • tes_graph_couleur(2003).xls
    46 KB · Affichages: 41
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Coloration automatique d'un histogramme

Re A bien re lire la dernière question; Il faut que le graph soit actif. Une proposition qui le fait (pour un graph nommé "Graphique 1"...)Cordialement
 

Pièces jointes

  • tes_graph_couleur(2003)(2).xls
    47 KB · Affichages: 54
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 519
Messages
2 089 266
Membres
104 083
dernier inscrit
hecko