Colorer des cellules

Résolu
sebsrv Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 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...


2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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.
0
sebsrv
 
Merci à vous, c'est exactement ce que je souhaitais obtenir.

Très bonne soirée,
0