Function FindWord(cel1 As Range, cel2 As Range, mot1 As String, mot2 As String, sentence1 As String, sentence2 As String) As String
'Cherche s'il y a des mots donnés dans 2 chaînes de caractères
'- cel1 : la 1ère cellule où se trouve la chaîne de caractères
'- cel2 : la 2ème cellule où se trouve la chaîne de caractères
'- mot1 : le mot que l'on cherche dans la chaîne de caractères de la 1ère cellule "cel1"
'- mot2 : le mot que l'on cherche dans la chaîne de caractères de la 2ème cellule "cel2"
'- sentence1 : le mot qui doit apparaître si les 2 cellules contiennent le mot "mot1"
'- sentence2 : le mot qui doit apparaître si l'une des 2 cellules (ou les 2) contient le mot "mot2"
Dim i As Byte, texte1 As String, texte2 As String, verdict1 As Byte, verdict2 As Byte
On Error GoTo Erreur '///
texte1 = LCase(cel1.Value): texte2 = LCase(cel2.Value) 'permet de ne pas tenir compte de la casse (majuscules / minuscules)
mot1 = LCase(mot1): mot2 = LCase(mot2) 'permet de ne pas tenir compte de la casse (majuscules / minuscules)
'FindWord2 = "" 'par défaut, le mot n'a pas été trouvé
i = 1
For i = 1 To Len(texte1) - Len(mot1) + 1 'cherche le 1er mot dans la chaîne de la 1ère cellule
If Mid(texte1, i, Len(mot1)) = mot1 Then verdict1 = 1
Next i
i = 1
For i = 1 To Len(texte2) - Len(mot1) + 1 'cherche le 1er mot dans la chaîne de la 2ème cellule
If Mid(texte2, i, Len(mot1)) = mot1 Then verdict2 = 1
Next i
i = 1
For i = 1 To Len(texte1) - Len(mot2) + 1 'cherche le 2ème mot dans la chaîne de la 1ère cellule
If Mid(texte1, i, Len(mot2)) = mot2 Then verdict1 = 2
Next i
i = 1
For i = 1 To Len(texte2) - Len(mot2) + 1 'cherche le 2ème mot dans la chaîne de la 2ème cellule
If Mid(texte2, i, Len(mot2)) = mot2 Then verdict2 = 2
Next i
FindWord = IIf(verdict1 + verdict2 = 2, sentence1, sentence2)
'////
Exit Function
Erreur:
FindWord = ""
'////
End Function