Recherche et formatage auto d'un mot dans une cellule

Résolu/Fermé
brindeau - 20 janv. 2014 à 11:07
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 - 22 janv. 2014 à 07:37
Bonjour,

J'ai un gros tableau avec des cellules contenant des resumes de texte.
Je voudrais savoir, pour aller plus vite dans mes recherches, comment mettre en rouge (ou en avant d'une quelconque facon) le mot que je recherche dans tous les textes. (toujours le meme mot).
Merci d'avance pour votre aide,
Joachim


12 réponses

dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 21/01/2014 à 08:33
bonjour
une petite macro a adapter a tes besoins
elle fait ce que tu demandes dans la colone D sur les lignes 1 a 40 :
pour la lancer doubleclic dans la cellule A1

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim mot, a, b As String
Dim l, lmot, deb, t As Integer
If ActiveCell.Address = "$A$1" Then
mot = InputBox("mot recherché")
lmot = Len(mot)
For i = 1 To 40
l = Len(Cells(i, 4))
For j = 1 To l
For k = 1 To lmot
If Left(mot, k) = Mid(Cells(i, 4), j, k) Then
t = t + 1
Else
t = 0
Exit For
End If
Next k
If t = lmot Then
deb = j
Cells(i, 4).Select
With ActiveCell.Characters(Start:=deb, Length:=lmot).Font
.Color = -16776961
End With
End If
Next j
Next i
End If
End Sub


Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.
1
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
20 janv. 2014 à 11:56
Bonjour
c'est possible en apliquant une mise en forme conditionnelle -> appliquer une mise en forme uniquement aux cellules qui contiennent :
texte specifique - contenant - *le mot recherché* et choisir le format
puis etendre cette MFC à toutes les cellules dans gerer la regle -> s'applique à
0
Bonjour,
merci pour votre reponse mais moi je ne veux mettre en avant que le mot dans la cellule, pas toute la cellule, c'est pour ca que je suis bloque ... :/
Merci !
0
Bonjour et merci beaucoup pour l'aide mais je n'arrive pas a la faire fonctionner ...
j ai pris des tutos sur le net mais j obtiens le message d erreur: "compile error : expected end sub".
comment dois je m y prendre ? merci d avance !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 21/01/2014 à 11:47
Bonjour
ouvir l'editeur VBA (alt+F11), double clic sur feuil1 sous l'arborescence VBAproject(non du fichier). Puis copie de toute la macro dans la fenetre a doite et ferme avec la croix rouge
tu peux ensuite lancer le prgm en doublecliquant sur la cellule A1.
Il faudra sans doute l'adapter a ton fichier car la recherche ne se fait que dans la colone D des lignes 1 a 40.

Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.
0
Merci beaucoup mais j ai beau faire ce que tu dis j arrive pas a la faire fonctionner ...
je te mets le fichier ici : http://cjoint.com/?DAvnABaUwL9

ci ca ne te derange d essayer, j ai essaye de parametrer la macro en cherchant et en mettant en valeur le mot "rye" dans la deuxieme et troisieme colonne ... sans succes !
Je te remercie beaucoup pour ton aide !
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
21 janv. 2014 à 14:06
ok je regarde çà et je te reponds mais demain car je ne peut pas avant
0
Merci :)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 21/01/2014 à 15:15
Bonjour,
Excusez l'incruste

recherche le mot "docteur" de B1 à B100 avec une macro paramétrée

Option Explicit
'-------------------------------------------------
Sub test()
Dim lig As Byte
Application.ScreenUpdating = False
For lig = 1 To 100
Colorier_mot "docteur", Cells(lig, "B")
Next
End Sub
'--------------------------------------------------
Sub Colorier_mot(mot, texte)
Dim longueur As Byte, debut As Byte
longueur = Len(mot)
If longueur > 0 Then
debut = InStr(1, texte, mot)
texte.Characters(debut, longueur).Font.ColorIndex = 3
End If
End Sub

Michel
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
21 janv. 2014 à 18:25
bonjour Michel
ne t'excuse pas pour l'incruste. Il y a toujours moyen de faire mieux et çà me permet d'apprendre en même temps. Mais pour cette fois je suis resté sur mon code un peu rustique mais cà fonctionne...
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 21/01/2014 à 18:26
bonsoir,
j'ai pu avoir un peu de temps
voici ton fichier

https://www.cjoint.com/?3Avsmp3GUnj

Quand tu doubleclic sur A1 (uniquement cette cellule), la macro recherche le mot que tu souhaites dans les colonnes A, B, et C sur toutes les lignes. elle ne tient pas compte des majuscules (pour avoir tout les mots).
Ils sont affichés en rouge et en gras. A la fin, tu as le nombre de mot trouvé.
Par contre j'ai remarqué que les hauteurs de lignes sont au maxi et il y a du texte non affiché tellement il y en a. il y a parfois des mots trouvés dans cette partie qui est caché.
vu la taille du fichier çà prend un peu de temps
en esperant avoir repondu a tes besoins.
pense a mettre en resolu si c'est ok
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.
0
Merci à vous deux pour votre aide, effectivement ça fonctionne à merveille !!!
Merci beaucoup, je vais aller beaucoup plus vite dans la lecture du doc vu que le mot qui m'intéresse saute direct aux yeux !
Merci mille fois !

PS : je vois pas comment mettre résolu ... il faut avoir un compte enregistré pour pouvoir éditer le premier message non ?
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
22 janv. 2014 à 07:37
Bonjour
normalement, en dessous du titre et de ton pseudo, il y a suivre - marqué comme resolu. tu cliques simplement dessus
0