Bonjour,
Il y a au moins un petit problème dans ton dispositif : tu as une fonction qui est censée faire une comparaison et te renvoyer une date.
Or : - cette date lui est également fournie en argument...
- mais : au vu de ta procédure d'appel, tu fournis cet argument sans lui affecter de valeur, tu envoies donc 0 comme date à la fonction !
- plus : tu n'utilises pas ta fonction comme fonction mais tu l'appelles comme une procédure Sub, tu ne récupères donc pas la valeur qu'elle peut renvoyer.
Au vu de ton code, tu devrais donc avoir systématiquement : "non saisie ou incohérence" comme réponse.
Proposition :
1) Côté fonction : supprimer x comme argument, déclarer une variable x, et une correspondance étant trouvée tu peux sortir de la boucle sans attendre : après x = .... mettre une ligne : Exit For.
2) Côté procédure : remplacer la ligne Call.... par : x = compare(c, t, s, h, a). Tu pourras alors affecter le résultat de la comparaison que tu as récupéré.
Cordialement
Ferrand