Option Explicit
Option Base 0
Function CompareText(Texte1 As Range, Texte2 As Range) As String
Dim Nom1() As String, Nom2() As String, Nom1O() As String
Dim MotIdentique As String
Dim ValTrouv As Byte
Dim i As Byte, j As Byte, k As Byte
Dim Nom1T As String
Dim Nom2T As String
Dim TabCorres1 As Variant
Dim TabCorres2 As Variant
If Texte1.Value = "" Then
CompareText = "Erreur"
Exit Function
End If
If Texte2.Value = "" Then
CompareText = "Erreur"
Exit Function
End If
Nom1T = Texte1.Value
Nom2T = Texte2.Value
TabCorres1 = Array("é", "è", "ç", "à", "ù", "ï", "ä", "ü", "î", "ê")
TabCorres2 = Array("e", "e", "c", "a", "u", "i", "a", "u", "i", "e")
For i = 0 To UBound(TabCorres1)
Nom1T = Replace(Nom1T, TabCorres1(i), TabCorres2(i))
Next i
For i = 0 To UBound(TabCorres1)
Nom2T = Replace(Nom1T, TabCorres1(i), TabCorres2(i))
Next i
Nom1 = Split(UCase(Nom1T))
Nom2 = Split(UCase(Nom2T))
Nom1O = Split(Texte1.Value)
For i = LBound(Nom1) To UBound(Nom1)
For j = LBound(Nom2) To UBound(Nom2)
If Nom1(i) = Nom2(j) Then ' indépendance de la casse
MotIdentique = MotIdentique & " " & Nom1O(i)
End If
Next j
Next i
CompareText = Trim(MotIdentique)
End Function