VBA détecter les cellules avec du texte de couleur différente

Bonjour ,

J'ai un petit code VBA qui duplique ma feuille, et ensuite la parcours pour corriger automatiquement certaines choses.

Et j'aimerais pouvoir détecter les cellules dans lesquels il y a des mots en 'rouge'. Mais attention, tout le texte n'est pas rouge à l'intérieur (seulement la fin en général).

Donc la fonction Cells(x,y).Font.Color me remonte la couleur que du premier caractère à priori.

Si vous savez comment faire !

Merci.

Bonjour,

Si le texte est de plusieurs couleurs, la valeur renvoyée par .Font.Color sera la valeur Null.

Si ton texte rouge est à la fin, tu testes le dernier caractères :

    With ActiveSheet.Cells(x, y)
        If .Characters(Len(.Text), 1).Font.Color = vbRed Then
            'instructions si la condition est vraie
        End If
    End With

S'il peut se trouver ailleurs, une boucle sur tous les caractères jusqu'à ce que tu en rencontres un en rouge...

Cordialement.

Génial merci pour cette réponse rapide et précise.

Je n'avais pas compris que le font.color marché par caractère.

Top

Bonsoir matt22free,

tu a écrit :

Je n'avais pas compris que le font.color marche par caractère.

* oui, mais là, si ça l'fait par caractère, c'est aussi pa'c'qu'y'a devant : .Characters()

* si tu mets par exemple : [B2].Font.Color = vbRed ça met en rouge tout le contenu de la cellule B2

et comme c'est le contenu entier, ça marche aussi bien si B2 contient du texte ou une formule

dhany

Rechercher des sujets similaires à "vba detecter texte couleur differente"