Colorer des cellules
Résolu
sebsrv
Messages postés
19
Statut
Membre
-
sebsrv -
sebsrv -
Bonjour,
J'utilise depuis longtemps les formules conditionnelles sur excel pour colorer mes cellules en fonction de leurs contenues.
Ex : Dans une matrice à 1000 chiffres toutes les cellules qui portent le chiffres 24 se colorie en vert.
Pour mon travail je suis chargé d'étudier des matrices (plus ou moins grands) qui peuvent contenir 30 000 cellules voir plus, de colorer celles-ci ci en fonction de leurs contenus.
J'aimerai donc trouver le moyen de travailler avec une legende de couleur
Ex : x couleurs (ex : bleu=1, rouge= orange etc) et en un clic colorer toutes les cellules de la matrice en fonction de son contenu.
Si vous avez une solution, celle ci serait la bienvenue. Peut-être un programme VB....
Merci d'avance...
J'utilise depuis longtemps les formules conditionnelles sur excel pour colorer mes cellules en fonction de leurs contenues.
Ex : Dans une matrice à 1000 chiffres toutes les cellules qui portent le chiffres 24 se colorie en vert.
Pour mon travail je suis chargé d'étudier des matrices (plus ou moins grands) qui peuvent contenir 30 000 cellules voir plus, de colorer celles-ci ci en fonction de leurs contenus.
J'aimerai donc trouver le moyen de travailler avec une legende de couleur
Ex : x couleurs (ex : bleu=1, rouge= orange etc) et en un clic colorer toutes les cellules de la matrice en fonction de son contenu.
Si vous avez une solution, celle ci serait la bienvenue. Peut-être un programme VB....
Merci d'avance...
2 réponses
-
Bonjour,
avec une macro paramétrée placée dans un module "routines" par ex
les couleurs sont celles définies par la propriété colorindex (3 =rouge dans la macro ci dessous)
à partir de l'exemple "find" de l'aide microsoft
Sub tester() Application.ScreenUpdating = False Range("A1:C20").Interior.Pattern = xlNone colorier Feuil1, "A1:C20", 23, 3 Application.ScreenUpdating = True End Sub Sub colorier(onglet, plage, valeur, couleur) Dim cellule As Range With onglet.Range(plage) Set cellule = .Find(valeur, LookIn:=xlValues) If Not cellule Is Nothing Then firstAddress = cellule.Address Do cellule.Interior.ColorIndex = couleur Set cellule = .FindNext(cellule) Loop While Not cellule Is Nothing And cellule.Address <> firstAddress End If End With End Sub
tite demo
https://www.cjoint.com/?3Inmj1SVqHt
Michel -
Bonsoir à tous,
Salut michel, alors, c'était bien les qcq jours de vacances ? :-)
Une autre mise en oeuvre que la tienne.
Ma proposition :
https://www.cjoint.com/?BInxtVlcORy
La macro s'applique à la sélection en cours.
A la place, si tu veux, tu peux mettre la plage en dur dans le code.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.