mrocf, si verificas al aparecer la cuarta aparicion (establecido por "Posicion") el mismo no ejecuta la sgte linea de comando: Set c = .FindNext(c), por consiguiente al efectuar la consulta c.Address <> FirstAddress las mismas llegan a ser iguales he inmediatamente sale del bucle.
Para mejor comprencion adjunto estas imagenes que espero aclare algunas dudas
En el mismo libro se cuenta con dos hojas la primera llamada "BD" en donde se encuentra toda la informacion existente, la misma esta sujeta a actualizaciones.
La segunda hoja inicialmente esta asignado con el nombre "Hoja1", en la cual se filtra la informacion deseada segun la necesidad del usuario:
Es cierto que se puede evitar complicaciones con un filtro avanzado, pero para poder filtrar la informacion deseada se deberia de hacer varias consultas en este filtro, cosoa que con el macros solo se efectua una y la informacion es obtenida.
He desarrollado otra alternativa que cumple esta finalidad, pero mi interes en persistir con el tema de utilizar el comando FIND dentro de una FUNCTION es que simplemente no me devuelve ningun dato mas alla de la primera interaccion solicitada.