Requête VBA - listes

Bonsoir,

pourriez vous m'aider sur un sujet?!

J'ai deux listes respectivement sur un volet chacun d'un fichier Excel (2016).

Une liste contient 200 noms de marques (Coca-cola, Nestlé, etc.) avec des informations rattachés sur les colonnes à côté.

La seconde liste indique des fonds financiers et des marques rattachés à ces fonds.

L'idée c'est de 'matcher' les deux listes pour vérifier si les noms de marques de la première liste apparaissent sur la seconde liste et il faudrait afficher sur une colonne supplémentaire du second volet si oui ou non la ligne contient le nom de la liste de base.

Voir en pièce jointe!

Je pensais à une requête du style: contient les caractères '...' dans la liste, en intégrant une condition sur la non prise en compte des accents pour par exemple éviter que 'Nestle' ne soit pas équivalent à 'Nestlé' (je souhaiterais que Nestle avec ou sans accent soit la même chose).

Si vous avez des propositions pour un code VBA à appliquer, je suis preneuse!!

Merci pour votre aide, bonne soirée

59test.xlsx (10.59 Ko)

Bonjour juliak,

à tester,

Sub test()
Set sh1 = Sheets("Feuil1")
Set sh2 = Sheets("Feuil2")
rw1 = sh1.Cells(Rows.Count, "B").End(xlUp).Row
rw2 = sh2.Cells(Rows.Count, "C").End(xlUp).Row

For i = 2 To rw2
    b = sansaccent(sh2.Cells(i, "C"))
  For j = 2 To rw1
    a = sansaccent(sh1.Cells(j, "B"))
    If Not IsError(Application.Search(b, a)) Then
        sh2.Cells(i, "D") = "oui"
        Exit For
    Else
        sh2.Cells(i, "D") = "non"
    End If
  Next j
Next i
End Sub

Function sansaccent(texte)
    T = texte
    carin = "áàâäãåéèêëíìîïóòôöõðúùûüÿýçïë"
    carout = "aaaaaaeeeeiiiioooooouuuuyycie"
    For i = 1 To Len(carin)
        T = Replace(T, Mid(carin, i, 1), Mid(carout, i, 1))
    Next i
    sansaccent = T
End Function

Bonjour,

merci pour ton retour.

J'ai appliqué le code mais celui ne semble pas fonctionner et n'affiche pas si oui ou non il contient le nom dans la colonne D de la feuille 2.

Peutetre que si vous pouviez m'expliquer le code 'pas à pas' cela pourrait m'éclairer et me permettre de l'appliquer à mon document!

Merci d'avance

re,

voici l'exemple à tester,

52juliak-test.xlsm (19.20 Ko)

Bonjour,

merci pour ton fichier test.

Mais ce dernier ne fonctionne pas comme dans la feuille 2, 'yùm' et 'nané' devraient indiquer 'oui' dans la colonne D (accent et sans accent ne devrait pas poser de problème).

Sinon, pour les autres noms, la requête fonctionne effectivement.

Pourrais tu aussi m'expliquer le code 'pas à pas' c'est à dire expliciter chaque ligne du code et à quoi elle sert? Quelle commande elle fait?

Merci d'avance

Bonne journée!!

Re,

et quand j'enlève le tiret (-) de la liste de base pour Coca-cola par exemple, et je teste la requête, il ne reconnait pas le nom non plus..

Aussi, si je rajoute par exemple 'coca-cola tm' comme nom d'actif (colonne C de la feuille 2), la requête ne reconnait pas la dénomination 'coca-cola'.

Or je cherche à avoir une requête qui reconnait la présence d'une chaine de caractères qui a quelque part dans sa cellule le mot 'coca-cola', avec accent, sans accent, avec des mots en plus etc.

Merci d'avance

Rechercher des sujets similaires à "requete vba listes"