Mise en valeur mot dans cellule Excel en VBA

Fermé
road666 Messages postés 3 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 21 avril 2012 - 20 avril 2012 à 22:40
road666 Messages postés 3 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 21 avril 2012 - 21 avril 2012 à 13:16
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
A voir également:

1 réponse

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
Avec 4000 lignes c'est moins pratique...
Je connaissais votre méthode bien sur!
0
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
road666 Messages postés 3 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 21 avril 2012
21 avril 2012 à 12:15
Merci, c'est précisément pour avoir ce bout de code VBA que je faisais appel au forum ;-)
0
road666 Messages postés 3 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 21 avril 2012
21 avril 2012 à 13:16
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