Comparer 2 cellules et valider si mot commun

bindou

XLDnaute Nouveau
Bonjour à tous ;
Un nouveau problème se présente à moi :

Je cherche une formule qui me permettrait de comparer 2 cellules afin de verifier qu'elles contiennent au moins un mot en commun.

cellule 1
"blabla blublu"

cellule 2
"blabla bleble"

= OK

Cellule 1
"blabla"

cellule 2
"bleble blzblz blabla"

= OK

cellule 1
"blabla blublu"

cellule 2
"blzblz bleble"

= Erreur

Puis-je m'en sortir avec une fonction NB.SI + CHERCHE ?
 

vgendron

XLDnaute Barbatruc
Hello

le plus simple, je pense, est la fonction personnalisée a mettre dans un module VBA standard

VB:
Function blablebli(ini1, ini2 As Range)
test = Split(ini1, " ")
present = False
For i = LBound(test) To UBound(test)
    If InStr(1, ini2, test(i)) <> 0 Then
        blablebli = "ok"
    End If
Next i
If blablebli <> "ok" Then blablebli = "Erreur"

End Function

et dans la feuille excel tu ecris
=blablebli(A1;B1)
 

vgendron

XLDnaute Barbatruc
alors, petit cours ;-)
il s'agit d'un code VBA = Macro

pour coller le code
ouvrir l'éditeur VBA: Alt + F11
à gauche dans la partie explorateur, sur le nom de ton classeur: Clic droit, ajouter module standard
à droite, dans la feuille de code: copier coller le code que revoici avec des commenatires

VB:
'nom de la fonction: blablebli()
'ini1 et ini2 sont les deux cellules de ta feuille excel que tu veux comparer
Function blablebli(ini1, ini2 As Range)
'on créé un tableau test qui contient les mots de la cellule ini1 séparés par un espace
test = Split(ini1, " ")
'on met la variable "présent" à faux pour commencer
present = False
'pour chaque élément du tableau = pour chaque mot
For i = LBound(test) To UBound(test)
'si on trouve le mot dans la cellule ini2
   If InStr(1, ini2, test(i)) <> 0 Then
     ' alors on renvoie "OK"
        blablebli = "ok"
   End If
'mot suivant
Next i
'à la fin, si on a jamais mis ok, alors, on renvoie "Erreur"
If blablebli <> "ok" Then blablebli = "Erreur"

End Function

dans ton fichier excel, tu peux ainsi utiliser la fonction blablebli comme tu utilises les fonctions nb.si, ou cherche ou somme ....
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,


Donne la liste des mots communs à 2 cellules

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/FonctionCommuns2cellules.xls


Code:
Function Communs(cel1 As Range, cel2 As Range)
Set d1 = CreateObject("Scripting.Dictionary")
a = Split(cel1, " ")
b = Split(cel2, " ")
For Each c In a
  d1(UCase(c)) = ""
Next c
Set d2 = CreateObject("Scripting.Dictionary")
  For Each c In b
  If c <> "" And d1.Exists(UCase(c)) Then d2(c) = ""
  Next c
  Communs = Join(d2.keys, " ")
End Function

jb
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 087 965
Membres
103 687
dernier inscrit
olivier72