Rechercher un mot dans une phrase contenue dans une cellule

Bonjour à tous,

Aprés avoir parcouru plusieurs topics et sites sur la question, je me tourne vers vous car aucune des solutions que j'ai pu trouver se résolvent mon problème.

Voila, j'ai besoin de savoir si des entreprises qui nous ont contacté font partie d'une liste d'entreprises sélectionnées par le service client.

Le problème est que lorsque les gens renseignent les informations des entreprises qui nous contactent, ils ne renseignent pas toujours les fiches avec le même soin. Par exemple:

LVMH = LVMVH Cosmétiques = LVMH Fragances

Ici, mon but serait de pouvoir faire des recherches dans ma liste de référence issue du service client sur des mots clefs tirés des fiches de contact. Sur l'exemple ci-dessus, je ferais ma recherche avec le mot LVMH par exemple.

Le pb est que Excel ne détecte pas la chaîne de caractères "LVMH" si elles n'est pas seule dans sa cellule avec le code que j'ai fait. Est-ce une limite d'Excel/VBA ou y a-t-il un moyen pour y parvenir?

Voici le code que j'utilise:

Sub New_method()

Workbooks("Book1.xlsm").Activate

Dim iLignFin As Long
Dim i As Long
Dim i2 As Long

Sheets("Sheet3").Select

'Fin de la première liste de référence
Cells(2, 1).End(xlDown).Select
iLignFinISS = ActiveCell.Row

'Fin de la seconde liste de référence
Cells(2, 2).End(xlDown).Select
iLignFinEsales = ActiveCell.Row

'Lignes de début de renseignement des infos trouvées dans un tableau de résultats
iStartISS = 3
iStartEsales = 3

For i = 2 To iLignFinISS
    If Cells(3, 4).Value Like "*" & Cells(i, 1).Value & "*" Then 'La valeur à chercher est en cellule(3,4)
        Cells(iStartISS, 6) = Cells(i, 1).Value 'On récupère le texte contenu dans la cellule qui a matché pour vérifier la pertinence
        Cells(iStartISS, 7) = i 'On récupère le numéro de ligne de la valeur identifiée pour pouvoir aller vérifier les infos
        iStartISS = iStartISS + 1
    End If
Next

For i2 = 2 To iLignFinEsales
    If Cells(3, 4).Value Like "*" & Cells(i2, 2).Value & "*" Then
        Cells(iStartEsales, 8) = Cells(i2, 2).Value
        Cells(iStartEsales, 9) = i2
        iStartEsales = iStartEsales + 1
    End If
Next

Cells(3, 6).Select

End Sub

Bonjour,

n'ayant pas ton fichier, je ne sais pas comment tes données sont organisées. mais je pense que ton instruction

If Cells(3, 4).Value Like "*" & Cells(i, 1).Value & "*" Then 'La valeur à chercher est en cellule(3,4)

devrait être

If Cells(i, 1).Value Like "*" & Cells(3, 4).Value & "*" Then 'La valeur à chercher est en cellule(3,4)

idem pour l'instruction semblable plus bas dans ton code

Oh yes!! Merci h2SO4, c'était tout simplement ça... Sais-tu pourquoi c'est dans ce sens là que doit s'écrire le code?

Maintenant que le code marche, je me rends compte que cette fonction est sensible aux majuscules ou minuscules. Y a-t-il un moyen pour contourner cette limitation?

Merci d'avance

Bonjour,

Une réponse partielle en tableur en PJ

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/Proches2.xls

Boisgontier

Bonjour Boisgontier,

Merci pour ta réponse plus que détaillée, mais malheureusement j'ai du mal à suivre ce que tu as fait dans la macro du fichier "proches2"...

Du coup je ne sais pas si tu répondais à ma question initiale, ou si tu me donnais une solution pour m'affranchir de la différence entre majuscules et minuscules...

Merci d'avance pour tes explications

Fonction perso qui retrouve si un caractère de trop dans la saisie:

Retrouve

LVMVH Cosmétiques --> LVMH

LVMH Fragances ---> LVMH

Boisgontier

Rechercher des sujets similaires à "rechercher mot phrase contenue"