XL 2016 Mot recherché

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dindin

XLDnaute Occasionnel
Bonjour le forum


je n'arrive pas à le faire avec des formules
j'ai un fichier qui sert à rechercher des mots dans une BD.
je joins le fichier type

- le mot recherché se trouve toujours dans la colonne A
- la zone de recherche se trouve toujours dans la colonne C

certains mots se trouve dans plusieurs cellules de la colonne C (toujours des phrases de plusieurs ligne)
la boucle doit rechercher le mot de la colonne A dans la cellule ou les cellules de la colonne C (suivant les nombre des linges)
Ici magasin A1 - se trouve impérativement dans la cellule C1 seulement,
par contre Boutique A2 -se trouve impérativement dans les lignes C5:C18
pour info les mots de la colonne A ne se répètent jamais .
Etc. mot prochain
autrement dit :

je dirai que visuellement la plage de recherche ( colonne C )
- Commence sur la même ligne que le mot cherché et
- s'arrête sur la ligne précédent l'apparition un nouveau de la colonne A.

A4 --> recherche dans C4 ( car mot suivant en A5 )
A5 ---> recherche de C5 à C18 ( car mot suivant en A19 )
A19 --> recherche de C19 à jusqu'au bout si pas de mot qui suit.
Après avoir trouvé le mot dans la phrase , ce dernier se met en gras et passe en bleu
la base contient environ 1000 mots et parfois 5000 linges (Colonne C)
Merci pour votre aide
 

Pièces jointes

Bonsoir,
Qu'elle est la régle !
Une boutique est un petit magasin (souvent de marque exclusive exclusif ou fournissant des articles haut de gamme).
cellule C5 le quelle de (boutique ou magasin) doit être en gras et pourquoi ?
Capture.JPG
 
Bonsoir à tous, @dindin,

Voir le fichier joint. Le code (v1) est dans le module Module1.
VB:
Sub ColorerMot()
Dim t, i&, n&, deb&, ii&, derlig&

With Sheets("feuil1")
   t = .Range("a1:a" & .Cells(.Rows.Count, "a").End(xlUp).Row)
   ReDim Preserve t(1 To UBound(t), 1 To 3)
   n = 4: t(4, 2) = 4
   For i = 4 To UBound(t)
      If t(i, 1) <> t(n, 1) And t(i, 1) <> "" Then
         t(n, 3) = i - 1
         n = n + 1: t(n, 1) = t(i, 1): t(n, 2) = i
      End If
   Next i
   derlig = .Cells(.Rows.Count, "c").End(xlUp).Row
   t(n, 3) = derlig

   Application.ScreenUpdating = False
   .Range("c4:c" & derlig).Font.Bold = False
   .Range("c4:c" & derlig).Font.ColorIndex = xlColorIndexAutomatic
   For i = 4 To n
      For ii = t(i, 2) To t(i, 3)
         deb = InStr(1, .Cells(ii, "c"), t(i, 1), vbTextCompare)
         Do While deb > 0
            Cells(ii, "c").Characters(deb, Len(t(i, 1))).Font.Bold = True
            Cells(ii, "c").Characters(deb, Len(t(i, 1))).Font.Color = vbBlue
            deb = InStr(deb + Len(t(i, 1)), .Cells(ii, "c"), t(i, 1), vbTextCompare)
         Loop
      Next ii
   Next i
End With
End Sub

edit : version v2 (un tout petit plus rapide)
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
475
Réponses
12
Affichages
215
Réponses
17
Affichages
478
Réponses
6
Affichages
153
Réponses
10
Affichages
223
Réponses
12
Affichages
289
Retour