Comparaison entre 2 colonnes

Bonjour le forum,

J'aurais besoin de votre aide pour effectuer une comparaison entre 2 cellules Excel

Dans l'exemple joint, j'aimerais pouvoir retrouver les valeurs identiques entre les colonnes A et B en cherchant sur la totalité ou bien une partie de la valeur et si possible indiquer en colonne C la ref de la cellule dans laquelle un valeur correspondantes à été trouvées.

Merci à tous pour votre aide.

Pascal

10classeur2.xlsx (9.42 Ko)

Salut

C'est ça que tu veux ?

12demo.xlsx (14.54 Ko)

bjr GGautier,

Merci beaucoup pour ta réponse mais cela ne fonctionne pas totalement

Je te joins le fichier avec mes commentaires pour les valeurs non trouvées à l'aide de ta formule.

13demo-1.xlsx (14.76 Ko)

D'accord je vois, dans ce cas de figure je pense qu'il faut passer par du VBA, par formule ça doit être possible mais ça risque de devenir une véritable usine à gaze ou alors il y a une technique que je ne connais pas Est ce que je te propose une solution via VBA ?

Je veux bien ce serait sympa de ta part

Je regarde ça demain, si n'hésite pas à me relancer si tu sens que je t'ai oublié

OK merci

Bonjour, voici un code qui fonctionne, mais attention il faut saisir uniquement dans la colonne B les mots cherchés et exclure les "le, de, la, etc..." en gros tous les mots parasites.

Mon code suis la logique suivante, il décompose tous les termes en se basant sur les espaces comme séparateur de la colonne B et va faire la même chose sur la colonne A, si il y a au moins un terme en commun il sauvegarde le numéro de la ligne.

18demo-2.xlsm (21.84 Ko)
Sub ChercheValeur()
Dim Ws As Worksheet
Dim PlageInit() As Variant, PlageCompar() As Variant
Dim DecompoInit() As String, DecompoCompar() As String
Dim MotInit As String, MotCompar As String
Dim DernLig As Long, PremLig As Long, i As Long, j As Long, x As Long, y As Long, cpt As Long
Dim ListAdr As String, Adr As String

    Set Ws = ThisWorkbook.Worksheets("Feuil1")
    PremLig = 2
    DernLig = Ws.Range("A" & Ws.Rows.Count).End(xlUp).Row
    PlageInit = Ws.Range("A" & PremLig & ":A" & DernLig).Value
    DernLig = Ws.Range("B" & Ws.Rows.Count).End(xlUp).Row
    PlageCompar = Ws.Range("B" & PremLig & ":B" & DernLig)

    For i = LBound(PlageCompar) To UBound(PlageCompar)
        DecompoCompar = Split(PlageCompar(i, 1), " ")
        ListAdr = ""
        For j = LBound(PlageInit) To UBound(PlageInit)
            DecompoInit = Split(PlageInit(j, 1), " ")
            cpt = 0
            For x = LBound(DecompoCompar) To UBound(DecompoCompar)
                MotCompar = DecompoCompar(x)
                For y = LBound(DecompoInit) To UBound(DecompoInit)
                    MotInit = DecompoInit(y)
                    If MotCompar = MotInit Then cpt = cpt + 1
                Next y
            Next x
            If cpt > 0 Then
                Adr = "$A$" & j + PremLig - 1
                If ListAdr = "" Then ListAdr = Adr Else ListAdr = ListAdr & ";" & Adr
            End If
        Next j
        If ListAdr = "" Then Ws.Range("C" & i + PremLig - 1) = "N/A" Else Ws.Range("C" & i + PremLig - 1) = ListAdr
    Next i
End Sub

bonjour

je te remercie.

Je testerais le code cet après midi..

@+

Rechercher des sujets similaires à "comparaison entre colonnes"