[VBA Excel] Echelle de couleur

Fermé
Fabienzz Messages postés 2 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 17 avril 2010 - Modifié par Fabienzz le 17/04/2010 à 11:28
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 17 avril 2010 à 12:56
Bonjour tout le monde,

Tout d'abord merci d'avance de m'aider à résoudre ce problème :)

Voici ce que je cherche à faire:

J'ai une base de données Excel, mon objectif étant de faire par macro un repère cartésien ou chaque cellule est coloriée d'une couleur variant suivant la valeur de dureté du sol associé au point dans ce repère cartésien. Pour l'instant c'est facile, ce que je ne trouve pas par la suite c'est d'afficher une échelle de couleur.

Par exemple mes valeurs de dureté varient de 100 à 1000, et j'ai défini pour chaque tranche de dureté une équation RGB associée.
Par exemple dans la tranche de dureté 100 à 500, R=dureté/6, G=dureté/15, B=dureté/2.

Chaque valeur de dureté a donc sa couleur associée en RGB.

Je souhaite maintenant avoir une echelle ayant en ordonnée(ou abscisse) la valeur de dureté et sur l'autre la couleur, avoir l'échelle des couleurs en fait suivant la valeur de dureté.

Pour le moment je n'ai pas encore trouvé comment afficher mon échelle de couleur en fonction de la dureté(chaque valeur de dureté a ses valeurs RGB associés), si quelqu'un connait un moyen je le remercie d'avance :)


Merci d'avance de m'aider dans mes recherches :)

Fabien

PS:Je programme sous Excel 2003

3 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
17 avril 2010 à 12:56
Pour une échelle verticale, tu pourrais avoir quelque chose du type :

With Range("B"& i).Interior
   .Color = Couleur_Durete(Range("A"& i).Value
   .Pattern = xlSolid
End With

Avec une fonction :
Function Couleur_Durete(Durete)
Dim couleur as long
couleur = 0
If ((Durete >100) And (Durete <= 500)) Then
   couleur = RGB(Durete/6, Durete/15, Durete/2)
End If
Couleur_Durete = couleur
End Function

1
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
17 avril 2010 à 11:39
Bonjour Fabienzz,
En combien de valeurs est décomposée ton échelle ?
Je pense que sous Excel 2003, tu ne pourras pas dépasser 56 valeurs différentes.
@+
0
Fabienzz Messages postés 2 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 17 avril 2010
17 avril 2010 à 12:36
Oui automatiquement il me mettra la couleur standarde en RGB la plus proche, malgré ça je souhaite afficher la couleur en fonction de la dureté.

quand cette macro sera utilisée sous excel 2007 il y aura beaucoup plus de couleurs.
0