Je vous en prie, bonne journée à vous également.
Un petit point que je n'avais pas précisé dans mon dernier message mais qui a son importance :
Quand on écrit
a_valeur = wb.Sheets(1).Application.WorksheetFunction.Max("D7:D100")
On se réfère à la plage D7:D100 de la feuille active ! Pas de Sheets(1).
Par contre, la correction que je vous ai proposée fait bien le calcul sur la première feuille (Sheets(1)):
a_valeur = WorksheetFunction.Max(wb.Sheets(1).Range("D7:D100"))
Alors, c'est probablement la même, mais ça peut être une source d'erreur difficile à retrouver. Préférez la 2e syntaxe, qui ne laisse aucun doute.