Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A2:C100], Target) Is Nothing And Target.Count = 1 Then
Set mondico = CreateObject("Scripting.Dictionary")
Select Case Target.Column
Case 1
For Each c In Application.Index([MaBD], , 1)
mondico(c.Value) = ""
Next c
Case 2
For Each c In Application.Index([MaBD], , 2)
If c.Offset(0, -1) = Target.Offset(0, -1) Then mondico(c.Value) = ""
Next c
Case 3
For Each c In Application.Index([MaBD], , 3)
If c.Offset(0, -1) = Target.Offset(0, -1) And _
c.Offset(0, -2) = Target.Offset(0, -2) Then mondico(c.Value) = ""
Next c
End Select
If mondico.Count > 0 Then
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Join(mondico.keys, ",")
End If
End If
End Sub