C'est pas très clair.
"la date n'existe pas", c'est à dire ? Tu as une liste, mettons :
01/01/2006
05/01/2006
06/01/2006
Je tape "04/01/2006" et ça doit retourner 05/01/2006, c'est ça ?
Alors c'est "simple.
Tu tries tes dates dans un tableau.
Ensuite, tu parcoures les dates une à une.
A la première qui est >= à la date saisie :
- Si les deux dates sont égales, tu retourne la date en question
- Sinon, tu fait asb(datediff(datesaisie, ladateencours)) et abs(datediff(datesaisie, ladateprecedente))
=> et tu retourne la date qui retourne la plus petite valeur pour ce test