Comparaison entre le chaines de caractère contenu dans 2 cellules

LIOR

XLDnaute Nouveau
Bonjour,

Je me permets de vous demander votre pour comparer le contenu de deux cellules. En fait j'ai deux colonnes de plusieurs milliers de lignes et je voudrais m'assurer que les lignes de la colonnes 1 correspondent bien aux lignes de la colonne B en vérifiant par exemple que la totalité de la chaine de caractère contenu dans la cellule B2 apparait bien dans le contenu de la cellule A2 et si c'est le cas alors faire D2=B2.
J'ai mis un exemple en pièce jointe afin d'illustrer mon problème.

Merci d'avance pour votre aide.
 

Pièces jointes

  • Classeur11.xls
    20 KB · Affichages: 123
  • Classeur11.xls
    20 KB · Affichages: 128
  • Classeur11.xls
    20 KB · Affichages: 124

mth

XLDnaute Barbatruc
Re : Comparaison entre le chaines de caractère contenu dans 2 cellules

Bonsoir,

Vous pouvez essayer cette formule en D2:

Code:
=SI(ESTNUM(CHERCHE(B2;A2));B2;"Erreur")

La fonction CHERCHE() renvoie la position de la chaîne de caractères si elle existe, et une erreur dans la cas contraire. La fonction ESTNUM() renvoie VRAI si le résultat obtenu est une valeur numérique, ce qui sera le cas si la chaîne de caractères existe dans la cellule de la colonne A, elle renverra FAUX dans le cas contraire. Enfin la fonction SI() permet d'afficher le libellé souhaité en fonction du résultat obtenu.

Bonne soirée,

mth

Edit: Bonjour Laetitia :)
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Comparaison entre le chaines de caractère contenu dans 2 cellules

bonjour LIOR , mth:):)
un essai avec une macro

Code:
Sub es()
 Dim i As Long
 Application.ScreenUpdating = False
 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
 If InStr(1, Cells(i, 1), Cells(i, 2), vbTextCompare) Then _
 Cells(i, 4) = Cells(i, 2) Else Cells(i, 4) = "Erreur"
 Next
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Comparaison entre le chaines de caractère contenu dans 2 cellules

re,
quoi que !!! en passant par un "tablo" plus rapide sur beaucoup de lignes a voir??

Code:
Sub est()
 Dim t(), t1(), i As Long, x As Long
 t = Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
 ReDim t1(1 To UBound(t), 1 To 2)
 For x = 1 To UBound(t)
 i = i + 1
 If InStr(1, t(x, 1), t(x, 2), 1) Then _
 t1(i, 1) = t(x, 2) Else t1(i, 1) = "Erreur"
 Next x
 [d2].Resize(x - 1, 1) = t1
 Erase t, t1
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal