1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Option Explicit
Sub testCompare()
Dim N1 As String, N2 As String
N1 = "Jean Til": N2 = "Jean TIl/1050"
MsgBox "Les noms " & N1 & " et " & N2 & " sont : " & IIf(isSame(N1, N2), "Similaires", "Différents")
N1 = "Jeanne Til": N2 = "Jean TIl / 1050"
MsgBox "Les noms " & N1 & " et " & N2 & " sont : " & IIf(isSame(N1, N2), "Similaires", "Différents")
N1 = "Jean Til": N2 = "Jean TIl * 1050"
MsgBox "Les noms " & N1 & " et " & N2 & " sont : " & IIf(isSame(N1, N2, "*"), "Similaires", "Différents")
End Sub
Function isSame(Nom1 As String, Nom2 As String, Optional Sep As String = "/") As Boolean
' Compare 2 chaînes de caractère Nom1 & Nom2 en supprimant les caractères "/" & suivants de Nom2
' La comparaison se fait en supprimant tous les espaces et transformant la chaîne en majuscule
' [Sep] argument facultatif avec comme valeur par défaut "/"
Nom2 = Left(Nom2, InStrRev(Nom2, Sep) - 1)
isSame = UCase(Replace(Trim(Nom1), " ", "")) = UCase(Replace(Trim(Nom2), " ", ""))
End Function |
Partager