Comparer 2 cellules et valider si mot commun

  • Initiateur de la discussion Initiateur de la discussion bindou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ?
 
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)
 
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 ....
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour