Private Sub Worksheet_Change(ByVal Target As Range)
Dim un As Range, deux As Range, form1, xrg As Range, x, n&, s(0 To 1), v
On Error GoTo FIN:
If Target.Count > 1 Then Exit Sub
If Target.Address <> [c2].Address And Target.Address <> [e2].Address Then Exit Sub
If Target.Address = [c2].Address Then Set un = [c2]: Set deux = [e2]
If Target.Address = [e2].Address Then Set un = [e2]: Set deux = [c2]
If un.Value = "" Then Exit Sub
form1 = Target.Validation.Formula1
If Left(form1, 1) = "=" Then
Set xrg = Range(Mid(form1, 2))
If xrg.Count <> 2 Then Exit Sub
For Each x In xrg.Value: s(n) = x: n = n + 1: Next
Else
v = Split(form1, Application.International(xlListSeparator))
If UBound(v) - LBound(v) + 1 <> 2 Then Exit Sub
s(0) = v(0): s(1) = v(1)
End If
Application.EnableEvents = False: deux.Value = IIf(un.Value = s(0), s(1), s(0))
FIN:
Application.EnableEvents = True
End Sub