Mise en forme conditionnelle > à trois critères

  • Initiateur de la discussion Initiateur de la discussion hobbit41
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

hobbit41

Guest
Bonjour,
Voici, j'ai un tableau et je voudrais colorier certaines cellules en fonction du contenu d'autres.
Le nombre de paramètres étant trop élevé, la mise en forme conditionnelle d'excel ne suffit pas.
Je met un fichier pour une meilleure compréhension.
Merci
 

Pièces jointes

Re : Mise en forme conditionnelle > à trois critères

Salut hobbit41 et le forum
Pas regarder ton exemple, pas envie 🙁
Le sujet a déjà été maintes et maintes fois traité. En pièce jointe, un exemple de myDF récupéré il y a des années.
A+
 

Pièces jointes

Re : Mise en forme conditionnelle > à trois critères

Bonjour,
J'avais vu cet exemple mais il ne correspond pas à mes besoins, ou tout du moins en partie pour le nombre de couleurs, d'ou le fichier joint pour m'expliquer ( comme tu le souhaites dans ta signature)
@+
 
Re : Mise en forme conditionnelle > à trois critères

Bonsoir,

Il y a beaucoup de couleurs... tu devrais trouver sur le site la palette avec les codes correpondants.

Essaye peut être avec ce code (Switch) à adapter à ton cas (permet d'éviter les boucles) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F15:F358")) Is Nothing Then
With Target.Interior
.ColorIndex = Switch(Target.Value = "e", 8, _
Target.Value = "b", 4, _
Target.Value = "c", 38, _
Target.Value = "a", 18, _
Target.Value = "p", 17, _
Target.Value = "", -4142)
End With
End If
End Sub

Comme le signale Gorfael, je l'ai trouvé sur ce site il y a quelques temps

Voir le lien suivant
https://www.excel-downloads.com/thr...-fond-a-une-cellule-selon-un-resultat.152248/

J'espère que ça répond à ton attente.
Bonne soirée
 
Re : Mise en forme conditionnelle > à trois critères

Bonsoir tout le monde

Pour infos
Avec cette modif, on peut s'éviter les répétitions de Target

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F15:F358")) Is Nothing Then
With Target
.Interior.ColorIndex = _
Switch(.Value = "e", 8, .Value = "b", 4, _
.Value = "c", 38, .Value = "a", 18, _
.Value = "p", 17, .Value = "", -4142)
End With
End If
End Sub

PS: c'était mon hommage du jour à mes endives 😉
 
Re : Mise en forme conditionnelle > à trois critères

Bonjour et merci à tous
J'ai un peu avancé dans mon tableau.
J'arrive bien a donner une couleur à mes cellules ( C8 à AZ16) en fonction du contenu d'une autre( BA8 à CI16).La méthode est certainement empirique, car je dois taper de nombreuse lignes de (target offset).
Mes problèmes:
lorsque j'efface le contenu d'une cellule de BA8 à CI16, la couleur de fond reste dans la cellule C8 à AZ16.
Comment vérifier qu'une cellule n'a pas de fond
Comment vérifier qu'une cellule a une couleur
D'avance merci
 

Pièces jointes

Re : Mise en forme conditionnelle > à trois critères

Salut hobbit41 et le forum
Ta macro, en plus court, vite fait :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [BA8:BA370]) Is Nothing And Target.Count = 1 Then
    If Left(UCase(Target), 1) = "T" Then
        Target.Offset(0, CInt(Right(Target, 2)) - 51).Interior.ColorIndex = 6
    End If
End If
If Not Intersect(Target, [BB8:BB370]) Is Nothing And Target.Count = 1 Then
    If Left(UCase(Target), 1) = "T" Then
        Target.Offset(0, CInt(Right(Target, 2)) - 52).Interior.ColorIndex = 4
    End If
End If
If Not Intersect(Target, [BC8:BC370]) Is Nothing And Target.Count = 1 Then
    If Left(UCase(Target), 1) = "T" Then
        Target.Offset(0, CInt(Right(Target, 2)) - 53).Interior.ColorIndex = 6
    End If
End If
If Not Intersect(Target, [BD8:BD370]) Is Nothing And Target.Count = 1 Then
    If Left(UCase(Target), 1) = "T" Then
        Target.Offset(0, CInt(Right(Target, 2)) - 54).Interior.ColorIndex = 4
    End If
End If
End Sub
Mais ça ne résout pas ta demande
BB8 : on met T01 => C8 en jaune : ça j'ai compris
BC8 : on met T01 => C8 passe en vert, bien que BB8 soit en jaune

En gros, que doit-on faire ? Seul, toi, tu peux nous le dire

Je propose => si on change une cellule avec une valeur commençant par T
- On efface les 3 autres cellules (concerne BA, BB, BC et BD), on colorie la cellule
-si on efface les 4 cellules (ou qu'elle ne commence pas par T => on efface la couleur de la ligne (cellule de C à AZ en couleur xlnone)

Est-ce que les 4 cellules peuvent avoir d'autres valeurs que T01 à T50 ?
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
239
Réponses
5
Affichages
665
W
Retour