Mise en valeur mot dans cellule Excel en VBA

road666 Messages postés 3 Statut Membre -  
road666 Messages postés 3 Statut Membre -
Bonsoir,

Comment peut-on mettre en valeur ( simplement gras + couleur rouge) un mot dans une cellule Excel:
A1 -> "le renard est un animal à 4 pattes"
A2 -> "le lion est aussi un animal"

le but étant de lancer une macro qui met les mots clés "renard" et "lion" en rouge gras mais pas le reste de la cellule

Remarque : la mise en valeur condtionnelle fonctionne mais elle met toute la cellule en rouge gras !!!

Merci les AS

1 réponse

  1. axion
     
    Bonsoir,

    si le texte n'est pas issu d'une formule, mais saisi normalement, il suffit :
    dans la barre de formule, sélectionner une lettre, un mot ou un groupe puis
    choisir la couleur, la taille ou la fonte dans l'onglet "Accueil".
    la sélection du texte en sera transformée.

    pratique, n'est-ce pas ?
    -1
    1. road666
       
      Avec 4000 lignes c'est moins pratique...
      Je connaissais votre méthode bien sur!
      0
    2. axion
       
      Bojour,

      toute la difficulté, dans ce cas, sera pour excel de trouver, dans une phrase, quels mots sélectionner.
      si ces mots sont en exergue dans une colonne séparée, en vis à vis de la phrase,
      un peu de VBA pourra secourir.
      sur ce topic, j'ai souvenir d'avoir lu des réponses en ce sens.

      Bonne continuation
      Cordialement,
      axion

      PS: une approche, sans macro: http://www.commentcamarche.net/s/Excel+%3A+Modifier+la+police+en+conact%E9nant?qlc
      0
    3. road666 Messages postés 3 Statut Membre
       
      Merci, c'est précisément pour avoir ce bout de code VBA que je faisais appel au forum ;-)
      0
    4. road666 Messages postés 3 Statut Membre
       
      j'ai enfin trouvé...

      Sub test3()
      Dim LeMot As String, LaPhrase As String
      Dim Deb As Integer, Decal As Integer

      For x = 1 To 5000
      Decal = 0
      LaPhrase = Range("F" & x).Value
      LeMot = InputBox("veuillez entrez le mot recherché")

      Do
      Deb = InStr(1, LaPhrase, LeMot)
      If Deb > 0 Then
      Range("F" & x).Characters(Deb + Decal, Len(LeMot)).Font.Color = vbRed
      Range("F" & x).Characters(Deb + Decal, Len(LeMot)).Font.Bold = True
      LaPhrase = Mid(LaPhrase, Deb + Len(LeMot))
      Decal = Decal + Deb + Len(LeMot) - 1
      End If
      Loop While Deb > 0
      Next x
      end sub
      0