Rechercher un mot dans une phrase contenue dans une cellule

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
Mateo MNH
Jeune membre
Jeune membre
Messages : 46
Inscrit le : 4 avril 2017
Version d'Excel : 2013

Message par Mateo MNH » 4 décembre 2018, 13:04

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'151
Appréciations reçues : 376
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 4 décembre 2018, 13:21

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
M
Mateo MNH
Jeune membre
Jeune membre
Messages : 46
Inscrit le : 4 avril 2017
Version d'Excel : 2013

Message par Mateo MNH » 4 décembre 2018, 13:25

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 :)
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 430
Appréciations reçues : 96
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 4 décembre 2018, 13:29

Bonjour,

Une réponse partielle en tableur en PJ

http://boisgontierjacques.free.fr/fichi ... oches2.xls

Boisgontier
Copie de rechvCode.xls
(35 Kio) Téléchargé 5 fois
M
Mateo MNH
Jeune membre
Jeune membre
Messages : 46
Inscrit le : 4 avril 2017
Version d'Excel : 2013

Message par Mateo MNH » 4 décembre 2018, 15:37

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
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 430
Appréciations reçues : 96
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 4 décembre 2018, 19:47

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

Retrouve
LVMVH Cosmétiques --> LVMH
LVMH Fragances ---> LVMH

Boisgontier
FonctionRechvCode.xls
(55 Kio) Téléchargé 5 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message