Ouais ! J'attendais simplement que tu me dises qu'il s'agissait de l'erreur 91, sur quelle ligne elle se déclenchait, et subsidiairement que k avait la valeur 7 au moment de l'erreur !
Parce que si je veux bien tenter de déboguer ce qui relève du code, c'est en entrant le moins possible dans la matière concrète qu'elle doit traiter mais qui ne me concerne pas hors les aspects types de données, qualifications, et autres articulations qui ont une incidence sur le code... Cela m'évite d'aller fouiller le coffre de ta voiture s'il y a un problème d'allumage déjà identifié.
Ceci étant, sans regarder trop plus avant, il me semblait dans un premier temps que ce n'était pas une bonne idée de faire partir k de 7 (ta ligne de titres me semblait-il). Mais les corrections sur ce point augmentaient le nombre de msgbox mais finissait toujours par une erreur.
En y regardant de plus près, ton second terme de boucle se pondérait par un -8, ce qui impliquait bien que k ne devait pas démarrer à 7 mais à 1.
Mais pas suffisant pour lever l'erreur... 3e faisceau d'observation la circonscrit au cas où la condition d'égalité est vérifiée, soit présomption que c'est bien sur cette ligne que ça se passe. En fait débuter à k=7 shuntait les éléments précédents pour démarrer sur une égalité.
Ayant été contraint de lire tes affectations prématurément (imbuvable pour moi qui ne fait pas trop bon ménage avec la "finance" ), j'ai trouvé assez vite que tu aurais intérêt à remplacer S_FindRedDate par S_RedDate.
Et effectivement cela marche mieux comme ça !
Note que ce ne sont ni des erreurs de codage, ni des erreurs grossières de syntaxe, et donc pas graves (j'en fais de bien pires dans le genre... ! ) que tu aurais trouvées rapidement à tête reposée.
Cordialement.