Microsoft 365 Mise en forme conditionnelle avec du texte a partir d'une liste

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 !

toto89

XLDnaute Junior
Bonjour,
Je souhaite faire une mise en forme conditionnelle en fonction d'une liste de donnée.

La cellule peut contenir une des valeur de la liste et donc doit mettre également la mise en forme.

Je ne sais pas quelle est la formule a faire.

Merci de votre aide svp. 😀

Bonne journée
 

Pièces jointes

Solution
re
ok on va y arriver
si tu nous donnais toute les contraintes dès le départ on aurais déjà fini 😉

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Column = 1 Or Target.Column = 2) Then
      Target.Font.Color = vbBlack
       For Each cel In Range("listenoms").Cells
           For Each targ In Target.Cells
                If InStr(1, targ.Value, cel) Then targ.Font.Color = vbRed
            Next
        Next
    End If
End Sub
Bonjour,
Je souhaite faire une mise en forme conditionnelle en fonction d'une liste de donnée.

La cellule peut contenir une des valeur de la liste et donc doit mettre également la mise en forme.

Je ne sais pas quelle est la formule a faire.

Merci de votre aide svp. 😀

Bonne journée
Bonjour,
Une possibilité, valable uniquement si la liste des prénoms à contrôler est constante et assez courte.
Cordialement,
 

Pièces jointes

bonjour
je pense que tu va devoir passer par du vba
car une MFC il te faudra en faire autant que dans ta liste
et je suppose que cette liste sera probablement ammenée a s'agrandir ou être modifiée
bref une mfc serait un vrai carcan a gérer
donc par vba dans le module de la feuille elle même
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        For Each cel In Range("listenoms").Cells
            If InStr(1, Target.Value, cel) Then Target.Font.Color = vbRed
        Next
    End If
End Sub

et ta liste devient allors un tableau structuré a fin que tu ne soit pas obligé de modifier le ref to dans le name
tu ajoute des nom en dessous le tableau s'agrandi tout seul

bien entendu ton fichier devient alors un fichier avec macro donc "xlsm" et non "xlsx"
demo.gif


à + 😉
 

Pièces jointes

Merci bien, je viens de voir que si par ex j'efface marie que je remplace par paul (qui n'est pas dans la liste) il me ressort quand même en rouge ... :/ OU même si j'ajoute un nouveau prénom dans la liste, cela ne fonctionne pas .. ou alors je ne sais pas faire..


Sinon ok c'est bien le sujet.

Et quel est le code pour mettre en couleur toute la cellule ?

Merci de ton aide.
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    12.9 KB · Affichages: 14
Dernière édition:
re
ha!!! oui pardon autant pour moi milles excuses 😳 je n'ai pas fait le versa

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
      target.font.color=vbblack
      For Each cel In Range("listenoms").Cells
            If InStr(1, Target.Value, cel) Then Target.Font.Color = vbRed
        Next
    End If
End Sub
 
re
ben normalement un tableau structuré n'a pas de vide c'est un des avantages a les utiliser
voici une autre version ou je t'ajoute dans le menu contextuel(click droit) dans le tableau des noms un bouton supprimer le nom
comme ça tu n'aura jamais de vide si tu veux en supprimer un tu click droite sur la colonne du tableau
 

Pièces jointes

Bonjour, intéressant ! Merci
une petite question, QUE dois-je changer si je souhaite avoir cette condition dans 2 colonnes au lieu d'une ?

Merci 🙂

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Target.Interior.Color = xlNone
For Each cel In Range("listenoms").Cells
If InStr(1, Target.Value, cel) Then Target.Interior.Color = vbRed
Next
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
 
Merci, j'affine j'affine ...
si je colle plusieurs valeurs (dans 2/3 cellules en même temps) cela ne fonctionne pas, je suis obligé d'entrer dans chaque cellule puis refaire entrée....

un peu gênant ... surtout qd je colle une dizaine de cellule en même temps.

Dsl du dérangement
 
re
ok on va y arriver
si tu nous donnais toute les contraintes dès le départ on aurais déjà fini 😉

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Column = 1 Or Target.Column = 2) Then
      Target.Font.Color = vbBlack
       For Each cel In Range("listenoms").Cells
           For Each targ In Target.Cells
                If InStr(1, targ.Value, cel) Then targ.Font.Color = vbRed
            Next
        Next
    End If
End Sub
 
re
ok on va y arriver
si tu nous donnais toute les contraintes dès le départ on aurais déjà fini 😉

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Column = 1 Or Target.Column = 2) Then
      Target.Font.Color = vbBlack
       For Each cel In Range("listenoms").Cells
           For Each targ In Target.Cells
                If InStr(1, targ.Value, cel) Then targ.Font.Color = vbRed
            Next
        Next
    End If
End Sub
Super merci bcp !
Desolé, je suis amateur , j'apprends ... dc je découvre au fur et à mesure les problèmes que je rencontre..

En tout cas merci beaucoup de votre aide ! C'est TOP !

Bonne journée
 
- 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

Discussions similaires

Réponses
2
Affichages
42
Réponses
3
Affichages
232
Retour