Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("D4:f3"), Target) Is Nothing Then
Set d = CreateObject("scripting.dictionary")
Set f = Sheets("PosteListeDeroulante")
Set Rng = f.Range("B4:B" & f.[B65000].End(xlUp).Row)
For Each c In Rng
If c.Value <> "" Then d(c.Value) = ""
Next c
Target.Validation.Delete
If d.Count > 0 Then Target.Validation.Add xlValidateList, Formula1:=Join(d.keys, ",")
End If
End Sub