Mise en forme conditionnelle caractères
Jean philippe
-
Jean philippe -
Jean philippe -
Bonjour,
Je soliicite votre aide pou run petit probleme de mise en forme conditionnelle.
Voila dans une colonne, j'ai plusieurs lignes avec du texte sous cette forme grosso modo
abcde - dazjdhdaz - dazdaz - XX
ce que je veux faire c'est que si une cellule contient XX, alors XX devient rouge, et seulement XX et non la cellule entière ou toutes les infos
Merci de votre aide et conseil
Je soliicite votre aide pou run petit probleme de mise en forme conditionnelle.
Voila dans une colonne, j'ai plusieurs lignes avec du texte sous cette forme grosso modo
abcde - dazjdhdaz - dazdaz - XX
ce que je veux faire c'est que si une cellule contient XX, alors XX devient rouge, et seulement XX et non la cellule entière ou toutes les infos
Merci de votre aide et conseil
1 réponse
-
Bonjour jean philippe
Ca ne peut pas se faire par une MFC
Il faut passer par une macro mise dans le worksheet de la feuille qui lorsqu'une cellule est modifiée colore le mot cible en rouge
Exemple de macro dans laquelle la colonne d'entrée est la colonne C et le mot à colorer chat
Private Sub Worksheet_Change(ByVal Target As Range) 'si plusieurs cellules selectionnées ou si on n'est pas en 3eme colonne sortie sans rien faire If Target.Count > 1 Or Target.Column <> 3 Then Exit Sub ' texte à colorer en rouge cible = "chat" ' longueur du mot nc = Len(cible) ' gestion de l'erreur si mot cible non trouvé dans la chaine (on va à la sortie) On Error GoTo fin ' emplcement du 1er caractère du mot cible dans la chaine dep = Application.WorksheetFunction.Find(cible, Target.Value) ' colore le texte en rouge à partir du 1er caratere mot cible sur la longueur du mot cible Cells(Target.Row, Target.Column).Characters(Start:=dep, Length:=nc).Font.Color = -16776961 fin: Cdlmnt Via End Sub
-
bonjour, merci pour la macro, elle fonctionne mais j'ai un problème, dans certaines cellules j'ai 2 XX, mais seul 1 seul XX se met en rouge, et j'aimerais appliquer la macro a deux colonne si possible, la C et la E
Merci de ton aide- Bonjour
Alors modifies la macro ainsi
Private Sub Worksheet_Change(ByVal Target As Range) 'si plusieurs cellules selectionnées ou si on n'est pas en 3eme colonne sortie sans rien faire If Target.Count > 1 Or (Target.Column <> 3 and Target.column<>5) Then Exit Sub ' texte à colorer en rouge cible = "chat" ' longueur du mot nc = Len(cible) ' gestion de l'erreur si mot cible non trouvé dans la chaine (on va à la sortie) On Error GoTo fin ' emplcement du 1er caractère du mot cible dans la chaine dep = Application.WorksheetFunction.Find(cible, Target.Value) ' colore le texte en rouge à partir du 1er caractère mot cible sur la longueur du mot cible Cells(Target.Row, Target.Column).Characters(Start:=dep, Length:=nc).Font.Color = -16776961 dep2=Application.WorksheetFunction.Find(cible, Target.Value, dep+1) Cells(Target.Row, Target.Column).Characters(Start:=dep2, Length:=nc).Font.Color = -16776961 fin: End sub
Cdlmnt
Via
-
-
-