mise en forme conditionnelle

M

meszo

Guest
Bonjour à tous,
dans la mise en forme conditionnelle, je voudrai aller au-delà des 3 conditions proposées dans excel.
En fait, j'ai besoin de mettre les lignes en couleur en fonction d'un nom qui apparaît dans une cellule de cette ligne, et j'ai 6 possibilités de ce nom.
Merci d'avance
Francis
 
M

myDearFriend

Guest
Bonsoir Francis,


Voici 2 liens sur le sujet :

Lien supprimé

Lien supprimé


Cordialement,
Didier_mDF

myDearFriend-3.gif
 
C

CHti160

Guest
salut "meszo"
bonsoir le "FORUM"
tu peux dans un premier temps faire une recherche sur le forum
et utiliser le cas échéant un Select Case

Sub SelectCase ()
Application.ScreenUpdating =False
for each C in Range("à déterminer")'<--- par exemple A1:A10
Select Case C.Value
Case "Mr"
C.Interior.ColorIndex = 3
Case "AP"
C.Interior.ColorIndex = 5
Case "JMB"
C.Interior.ColorIndex = 6
Case "ROR"
C.Interior.ColorIndex = 8
'<---- à recopier pour un nouveau cas
End Select'<---juste au dessus de là
Next C
Application.ScreenUpdating = True
End Sub
A+++
Jean Marie
 
O

omicron

Guest
Bonsoir Meszo,

Tu trouveras en pièce jointe un exemple à adapter pour répondre à ton problème.

=====================================================
Private Sub Worksheet_Change(ByVal Target As Range)

Set RangeCouleurs = Range("A1:F1") '<< A adapter
Set RangeCouleurInconnue = Range("G1") '<< A adapter
Set RangeNoms = Range("A4:A24") '<< A adapter

If Not Intersect(Target, RangeNoms) Is Nothing Then
For Each CelNom In Intersect(Target, RangeNoms)
For Each CelCouleur In RangeCouleurs
CelNom.EntireRow.Interior.ColorIndex = RangeCouleurInconnue.Interior.ColorIndex
If CelNom = CelCouleur Then
CelNom.EntireRow.Interior.ColorIndex = CelCouleur.Interior.ColorIndex
Exit For
End If
Next CelCouleur
Next CelNom
End If

End Sub
=====================================================

Le principe est simple:
Chaque fois que le contenu d'une cellule de la zone "RangeNoms" de la feuille qui contient les noms est modifiée, on compare sa valeurs aux cellules de la zone "RangeCouleurs" qui sert d'échantillon. Celle ci contient les noms à tester et les couleurs à affecter.
Si on trouve égalité, on colorie toute la ligne de la cellule de la zone "RangeNoms" avec la couleur correspondante dans "RangeCouleurs"
Si on ne trouve pas égalité, on colorie toute la ligne de la cellule de la zone "RangeNoms" avec la couleur de la cellule correspondant à la zone "RangeCouleurInconnue"

Remarque :
La zone "RangeCouleur" peut être masquée
Le nombre de nom/couleur (6) peut être augmenté sans difficultés, il suffit de mettre plus de cellules dans la zone "RangeCouleurs" et de modifier le paramètre associé en tête de procédure.

Bon courage pour la suite.

Omicron.
 

Pièces jointes

  • CouleursNoms.zip
    6.7 KB · Affichages: 19

Statistiques des forums

Discussions
312 836
Messages
2 092 655
Membres
105 479
dernier inscrit
chaussadas.renaud