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
A voir également:

1 réponse

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
road666
 
Avec 4000 lignes c'est moins pratique...
Je connaissais votre méthode bien sur!
0
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
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
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