Surligner les mots lors d'une recherche

Bonjour,

Lors d'une recherche dans une feuille excel, seule la case contenant le mot recherché est mise en "surbrillance" ; or je souhaiterais savoir s'il est possible, via une manip ou un code VBA, de surligner directement l'expression recherchée (ce qui permettrait de la trouver plus rapidement car mes cases contiennent parfois des longs textes).

Merci d'avance pour votre aide !

Elodie

Elodie15 a écrit :

Bonjour,

Lors d'une recherche dans une feuille excel, seule la case contenant le mot recherché est mise en "surbrillance" ; or je souhaiterais savoir s'il est possible, via une manip ou un code VBA, de surligner directement l'expression recherchée (ce qui permettrait de la trouver plus rapidement car mes cases contiennent parfois des longs textes).

Merci d'avance pour votre aide !

Elodie

Bonjour,

"cellule" et pas "case" en passant

Tu entends quoi par longs textes ? Excel n'est pas un traitement de texte même si on a tout vu; mais un exemple est toujours bienvenu

P.

Au temps pour moi, cellule !

Il s'agit de quelques phrases de description, rien de bien long ni comparable à du traitement de texte ! L'idée est surtout d'améliorer la visibilité lors d'une recherche

bonjour,

solution via une macro

Sub aargh()
    Cells.Font.Color = 0
    b = InputBox("texte à rechercher")
    Set r = Cells.Find(b, lookat:=xlPart)
    If Not r Is Nothing Then
        fa = r.Address
        Do
            s = InStr(r.Value, b)
            While s <> 0
                r.Characters(Start:=s, Length:=Len(b)).Font.Color = vbRed
                s = InStr(s + 1, r.Value, b)
            Wend
            Set r = Cells.FindNext(r)
        Loop Until r Is Nothing Or r.Address = fa
    End If
End Sub

Bonjour,

Merci beaucoup pour ta réponse ! Cependant la base est destinée à être utilisée par des personnes ne connaissant pas VBA, est-il possible de faire fonctionner la macro sans l'ouvrir, directement avec la recherche d'excel ? Ou cela nécessite-t-il une autre macro ?

Elodie15 a écrit :

Bonjour,

Merci beaucoup pour ta réponse ! Cependant la base est destinée à être utilisée par des personnes ne connaissant pas VBA, est-il possible de faire fonctionner la macro sans l'ouvrir, directement avec la recherche d'excel ? Ou cela nécessite-t-il une autre macro ?

Tu peux intégrer un bouton sur ta feuille excel et lancer la macro en cliquant sur ce bouton. Même les gens ne connaissant pas VBA savent cliquer sur un bouton

Bonjour melch !

En effet avec un bouton ce serait parfait ! Peux-tu m'indiquer le code pour en ajouter un ?

Onglet développeur -> Contrôles -> Insérer -> Bouton

Ensuite il te demande quelle macro affecter au bouton

re,bonjour,

avec le code de H2so merci à lui

couleur rouge + surligné

crdlt,

André

Merci pour l'exemple !!!

Encore un détail...avec la version que tu proposes les mots deviennent rouge mais il faut les chercher, est-ce possible de garder le fonctionnement de base de la recherche, c'est-à-dire afficher un par un les mots correspondant ?

Re,

As-tu toujours l'erreur ? , j'ai l'ancienne version d'Excel 2007

crdlt,

André

bonjour,

adaptation du code d'andré (que je salue) pour supprimer les soulignés avant une nouvelle recherche

re-bonjour,

une version qui se positionne sur chaque occurrence trouvée.

Non je n'ai plus l'erreur

C'est parfait un grand merci à vous !!

Bonjour,

toujours avec le code de h2so4, mais en mettant la liste des adresses en A1

' par h2so4
' https://forum.excel-pratique.com/excel/surligner-les-mots-lors-d-une-recherche-t97814.html
' noter toutes les adresses en A1

Private Sub aargh_Click()
Dim Tous
Cells.Font.Color = 0
b = InputBox("texte à rechercher")
Set r = Cells.Find(b, lookat:=xlPart)
If Not r Is Nothing Then
   fa = r.Address
   Do
      s = InStr(r.Value, b)
      While s <> 0
         r.Characters(Start:=s, Length:=Len(b)).Font.Color = vbRed
         r.Characters(Start:=s, Length:=Len(b)).Font.Underline = xlUnderlineStyleSingle
         s = InStr(s + 1, r.Value, b)
      Wend
      Set r = Cells.FindNext(r)
      Tous = Tous & r.Address & "-"
   Loop Until r Is Nothing Or r.Address = fa
End If
[A1].Value = Tous
End Sub
Rechercher des sujets similaires à "surligner mots lors recherche"