Comparer 2 colonnes d'un classeur

Bonjour à tous,

j'aimerai avoir une solution en formule ou vba.

en fait je veux comparer deux colonnes A et B d'un même classeur et renvoyer la valeur " PRESENTE" dans la colonne C si et seulement si la valeur de la colonne B est présente entièrement ou en partie dans la liste de la colonne A.

le cas echéan renvoyer la valeur "NON PRESENTE" dans la colonne C

COLONNE A COLONNE B COLONNE C

INON-EDEA NGAOUNDERE PRESENTE

EDEA MAROUA PRESENTE

KOUSSERI POUSS NON PRESENTE

YAOUNDE EDEA NON PRESENTE

DOUALA NON PRESENTE

EDEA-LIMBE PRESENTE

BAFOUSSAM PRESENTE

LOBE POUSS PRESENTE

Bonjour

Je ne vois pas très bien car les exemples que tu donnes ne satisfont pas les conditions que tu imposes....

Bye !

Bonjour,

merci de consulter le fichier joint stp

SALUT ci joint un fichier d'exemple

je cherche à ameliorer ce code svp

 Sub comparaison()
'
' comparaison Macro
' Macro comparaison 2 colonnes
'
Dim VALEURA As String, VALEURB As String
'
For i = 1 To 338
'VALEURA = Range("A" & i).Value + Range("B" & i).Value
    VALEURA = range("A" & i).Value
For j = 1 To 338
VALEURB = range("B" & j).Value
If VALEURA = VALEURB Then
MsgBox ("cette personne est présente dans les deux listes => ligne " & j)

End If
Next j
Next i
End Sub 

il me manque la synthaxe pour inserer la valeur " PRESENTE" si ma donnée est présente en A et B et "NON PRESENTE" dans le cas contraire.

merci

Un essai inspiré de ta macro car je ne comprends toujours pas tes exemples.

Bye !

en fait je voudrais si les données de la colonne B sont présentent dans la colonne A si oui renvoyer dans la colonne C de la valeur PRESENTE

 
Dim tablo, tabloR, derln&, iA&, iB&

Sub Comparer()
    derln = Range("A1").CurrentRegion.Rows.Count
    Range("C1:C" & derln).ClearContents

    tablo = Range("A1:B" & derln)
    tabloR = Range("C1:C" & derln)

    For iB = 1 To UBound(tablo, 1)
        If tablo(iB, 1) <> "" Then
            For iA = 1 To UBound(tablo, 1)
                If tablo(iA, 1) <> "" Then
                    If tablo(iA, 1) Like "*" & tablo(iB, 2) & "*" Then
                        tabloR(iB, 1) = "Présent (Cellule A" & iA & ")."
                    End If
                End If
            Next iA
        End If
        If tabloR(iB, 1) = "" Then
            tabloR(iB, 1) = "Non présent"
        End If
    Next iB

    Range("C1").Resize(UBound(tabloR, 1), 1) = tabloR
End Sub
  

je penses que ce code peut être amélioré

atitila a écrit :

je penses que ce code peut être amélioré

C'est de mon code que tu parles !

Alors, je t'en prie, fais-le !

Surtout ne t'en prive pas !

Bye !

Bonjour GMB,

merci déjà pour ton aide précieuse.

Bonjour,

On aura tout lu !!

et si je veux qu'il intégre également les noms de la colonne B present dans les noms composés de la colonne A

exemple

COLONNE A******************************* COLONNE B***********************COLONNE C*********

BONANJO-DOUALA********************** DOUALA****************************PRESENTE en B*****

DOUALA***********************************MAROUA****************************PRESENTE en B*****

DAKAR************************************YAOUNDE***************************PAS PRESENTE******

DOUALA 1er******************************DAKARRR****************************PRESENTE en B****


il y a également cette formule qui retourne le même resultat que le code

 =SI(ESTNA(RECHERCHEV(B1;A:A;1;FAUX));"NON PRESENTE";"PRESENTE")    

il y a également cette petite formule qui semble retourner le même résultat que le code vba

 =SI(ESTNA(RECHERCHEV(B1;A:A;1;FAUX));"NON PRESENTE";"PRESENTE")  
gmb a écrit :
atitila a écrit :

je penses que ce code peut être amélioré

Y 'en a qui ne manquent pas d'air ...

ci jointe une formule qui fait des merveilles

  =SI(ESTNUM(EQUIV($A2;$B$2:$B$339;0))+ESTNUM(EQUIV(GAUCHE(SUBSTITUE($A2;" ";"-");TROUVE("-";SUBSTITUE($A2;" ";"-"))-1);$B$2:$B$339;0))+ESTNUM(EQUIV(DROITE(SUBSTITUE($A2;" ";"-");NBCAR($A2)-TROUVE("-";SUBSTITUE($A2;" ";"-")));$B$2:$B$339;0));"";"Non")&" Présente en B"  
Rechercher des sujets similaires à "comparer colonnes classeur"