Pour une colonne colorer cellule si mot = xxx

Bonjour,

par avance Merci pour votre aide pour le sujet suivant.

Je cherche à mettre en Rouge pour une colonne donné tout mot commençant par

MIX

DDK

LOG

FOX à l'aide d'une Macro

Merci bien cordialement

20colortext.zip (7.27 Ko)

Bonjour le forum,

Avec une MFC :

B2 :

=NB.SI($B2;"MIX*")+NB.SI($B2;"DDK*")+NB.SI($B2;"LOG*")+NB.SI($B2;"FOX*")=1

S'applique à : =$B$2:$B$35

Bonjour,

Merci pour la proposition.

J'y est pensé mais ayant plus de 60000 lignes et 17 onglets a traiter, c'est la raison pour laquelle j'ai pensé a une

Macro car la fonction Si est gros consommateur de Mémoire

encore Merci

Bonjour,

Pas certain qu'une MFC alourdisse le fichier de manière considérable ... en faisant le test sur ton fichier réel, tu t'en ferais une idée assez précise (plutôt qu'une hypothèse ).

On pourrait même, me semble-t-il appliquer la MFC à toute la colonne B et simplifier un peu la formule proposée par mbbp:

Sélectionner la colonne B et utiliser la formule:

=NB.SI($E$2:$E$5;GAUCHE($B1;3))

On pourrait envisager une procédure événementielle, mais comment déterminer les 17 onglets auxquels cette macro devrait s'appliquer? Une base à peaufiner pourrait être:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Application.CountIf([E2:E5], Left(Target, 3)) Then Target.Font.ColorIndex = 3 Else Target.Font.Color = RGB(0, 0, 0)
End Sub

... à coller dans la fenêtre de code de la feuille concernée

Bonjour le forum,

vois ceci :

Option Explicit
Sub test()
Dim r As Range, rng As Range, x As Range
    With Sheets("XLT")
        Set rng = .Range("e2", .Range("e" & Rows.Count).End(xlUp))
        .Columns(2).SpecialCells(2).Font.ColorIndex = xlAutomatic
        For Each r In .Range("b2", .Range("b" & Rows.Count).End(xlUp))
            If Not IsError(Application.Match(Left(r.Value, 3), rng, 0)) Then
                If x Is Nothing Then
                    Set x = r
                Else
                    Set x = Union(x, r)
                End If
            End If
        Next
        If Not x Is Nothing Then x.Font.ColorIndex = 3
        Set x = Nothing
    End With
End Sub

klin89

Merci à tous pour vos réponses

En MFC j'ai enregistré une Macro avec chaque Début de texte voulu et pour chaque onglet commençant Par Xltxxxxx la macro s'enclenche.

Klin89 toujours aussi impliqué, mes respects

Rechercher des sujets similaires à "colonne colorer mot xxx"