Colorier un texte dans une cellule en VBA

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je voudrais après avoir demander un texte avec un inputbox , pourvoir faire en sorte que si il est contenu dans un ensemble de cellule (on va partir sur une colonne), ce texte soit colorié en rouge par exemple.

Je préférerai le faire en VBA (si c'est possible en MEFC, cela m'intéresse aussi :eek:).

Merci d'avance :).
 

MJ13

XLDnaute Barbatruc
Re : Colorier un texte dans une cellule en VBA

Bonjour Tototiti

Merci pour ce fichier. Mais ce n'est pas exactement ce que je veux (ou je n'ai pas compris le fonctionnement) :eek:.

Je voudrais que si je rentre "b" ou "bbbb", qu'il se colorie en rouge, dans la colonne A mais que le texte "b" ou "bbbb" dans les cellules correspondant au critère.
 
G

Guest

Guest
Re : Colorier un texte dans une cellule en VBA

Bonjour Michel:), Tototiti:),

Il me semblait que quelque chose m'échappait, Michel, c'est pour cela que je n'ai pas répondu.

Dans ton dernier post aussi:):
Je voudrais que si je rentre "b" ou "bbbb", qu'il se colorie en rouge, dans la colonne A mais que le texte "b" ou "bbbb" dans les cellules correspondant au critère. ????

A+++
 

MJ13

XLDnaute Barbatruc
Re : Colorier un texte dans une cellule en VBA

Re, Bonjour Ges

Merci pour ta réponse :).

Mais en fait c'est très simple mais assez complexe :confused:.

On va partir d'une colonne où j'ai des textes. Je voudrais colorier en rouge seulement le texte de mon inputbox dans les cellules.

C'est plus clair :eek:.
 
G

Guest

Guest
Re : Colorier un texte dans une cellule en VBA

Re,

Peut-être quelque chose comme ceci?

Si tu rentres "fg", toutes les séquences "fg" contenues dans chaque cellule de A2:A7 sont colorées en rouge.
Code:
Private Sub ColorerSousTexte()
    Dim rep As Variant
    rep = InputBox("Entrez le texte à chercher:")
    If Not rep = False Then
 
        Dim c As Range
        Dim pos As Single
        For Each c In Range("A2:A7")
            c.Font.ColorIndex = xlColorIndexAutomatic
            pos = InStr(1, c.Text, rep)
            If pos > 0 Then
                Do
                    If Mid(c.Text, pos, Len(rep)) = rep Then c.Characters(pos, Len(rep)).Font.ColorIndex = 3
                    pos = pos + Len(rep) - 1
                Loop While pos < Len(c.Text)
            End If
        Next
    End If
End Sub

Par MEFC on peut colorer tous les caractères d'une cellule qui contient un sous-texte mais pas une partie de ces caractères.

[Edit]
amélioration de la boucle:
Code:
Private Sub ColorerSousTexte()
       Dim rep As Variant
    rep = InputBox("Entrez le texte à chercher:")
    If Not rep = False Then
        Dim c As Range
        Dim pos As Single
        For Each c In Range("A2:A7")
            c.Font.ColorIndex = xlColorIndexAutomatic
            pos = InStr(c.Text, rep)
            Do While pos > 0 And pos <= Len(c.Text)
                c.Characters(pos, Len(rep)).Font.ColorIndex = 3
                pos = InStr(pos + Len(rep), c.Text, rep)
            Loop
        Next
    End If

End Sub

A+
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
312 366
Messages
2 087 636
Membres
103 626
dernier inscrit
Valentino76