Option Explicit
Sub unique()
Dim un As New Collection, ls As Integer, ind As Integer, annee As Integer, cel As Range
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheets("Base")
annee = .[K1]
ls = .Range("A2").End(xlDown).Row
For Each cel In .Range("A3:A" & ls)
ind = Year(CDate(.Range("B" & cel.Row)))
If ind = annee Then
On Error Resume Next
un.Add cel.Value, CStr(cel.Value)
On Error GoTo 0
End If
Next cel
.[K3].Value = un.Count
End With
End Sub