[macro] changer couleur de police d'un mot recherché et tout ce qui est après

sourcier08

XLDnaute Occasionnel
Bon jour à tous,

Je cherche à colorier un texte d'une cellule mais uniquement à partir de celui-ci et jusqu'à la fin.


si j'ai dans une cellule :

Sourcier à dit:
Je me nomme gertrude et j'habite à Lyon, près de l'église

Je veux pouvoir effectuer une recherche du mot gertrude, le rendre en rouge et tout ce qui est après aussi.

j'obtiendrai ainsi :

Sourcier à dit:
Je me nomme gertrude et j'habite à Lyon, près de l'église



Merci d'avance pour l'aide...
 

Modeste

XLDnaute Barbatruc
Re : [macro] changer couleur de police d'un mot recherché et tout ce qui est après

Bonjour sourcier08,

Il aurait fallu préciser comment tu imaginais lancer la macro, où tu indiquerais le texte à rechercher et quelle plage est à explorer!
Le code ci-dessous devrait fonctionner si la recherche est à faire dans la cellule active et le mot à trouver est "en dur" dans le code.
... Vois si tu peux adapter ...

VB:
Sub colorer()
On Error Resume Next
pos = Application.WorksheetFunction.Search("gertrude", ActiveCell.Text)
If Not IsEmpty(pos) Then ActiveCell.Characters(pos, 99).Font.Color = RGB(255, 0, 0)
End Sub
 

sourcier08

XLDnaute Occasionnel
Re : [macro] changer couleur de police d'un mot recherché et tout ce qui est après

Ça passera par un userform.

Une textbox me permettra de définir le mot à chercher et je pourrai aussi choisir la couleur à appliquer.
Pour la plage, elle n'est pas encode définie. Activecell fera l'affaire pour le moment.


Je te remercie beaucoup.
 
Dernière édition:

sourcier08

XLDnaute Occasionnel
Re : [macro] changer couleur de police d'un mot recherché et tout ce qui est après

Ça a fait l'affaire juste un moment parce que je ne sais pas quoi mettre à la place d'activecell.text dans mon cas.


J'ai choisi, dans mon exemple, une recherche sur une colonne entière mais... je fais comment maintenant ?


J'ai même tenté une boucle et là, surprise totale du résultat obtenu.

Code:
Private Sub CommandButton1_Click()

Dim choix As Variant
choix = TextBox1.Value

Range("A1").Select

For x = 1 To 10
        ActiveCell.Offset(x, 0).Select
        
        On Error Resume Next
        pos = Application.WorksheetFunction.Search(choix, ActiveCell.Text)
        If Not IsEmpty(pos) Then ActiveCell.Characters(pos, 99).Font.Color = TextBox2.BackColor
        
Next

End Sub
 

Pièces jointes

  • recherche_et_couleurs.xlsm
    19.3 KB · Affichages: 56
  • recherche_et_couleurs.xlsm
    19.3 KB · Affichages: 74
  • recherche_et_couleurs.xlsm
    19.3 KB · Affichages: 74
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : [macro] changer couleur de police d'un mot recherché et tout ce qui est après

Bonsoir,

Modifie la boucle dans ta Sub CommandButton1_Click() comme suit:
VB:
For Each cellule In Range("A5:A" & Range("A" & Rows.Count).End(xlUp).Row)
        pos = 0
        On Error Resume Next
        pos = Application.WorksheetFunction.Search(choix, cellule.Text)
        If pos > 0 Then cellule.Characters(pos, 99).Font.Color = TextBox2.BackColor
Next

On s'est croisés: pas encore lu ton dernier ajout
 

sourcier08

XLDnaute Occasionnel
Re : [macro] changer couleur de police d'un mot recherché et tout ce qui est après

Ah bein..., j'étais pas loin, juste embourbé avec 3 pneus crevés et 1 roue de secours ^^
Heureusement que t'es arrivé pour me dépêtrer.

Un grand merci !
 

Pièces jointes

  • recherche_et_couleurs.xlsm
    23.5 KB · Affichages: 62
  • recherche_et_couleurs.xlsm
    23.5 KB · Affichages: 80
  • recherche_et_couleurs.xlsm
    23.5 KB · Affichages: 86
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400