This is based on your first ersion
I can not find any logical problems with it, but, I can't test it because my computer is telling me that the array index is out of bounds, which is programmatically impossible in this code.
Option Explicit
Public Function PROCP(Procurado As Range, Matriz As Range) As Variant
'For help see: http://www.vbaexpress.com/forum/showthread.php?62086
Dim PDate As Date
Dim Matrix As Variant 'To make into an Array
Dim i As Long 'For use with Array
PDate = Procurado 'To avoid using input Parameters
Matrix = Intersect(Matriz.Parent.UsedRange, Matriz.EntireColumn).Value 'Use an Array
For i = LBound(Matrix) To UBound(Matrix)
If PDate = Matrix(i) Then
PROCP = Matrix(i)
Exit Function
End If
PDate = DateAdd("d", 1, PDate)
Next i
End Function