Ma solution correspond bien à ton fichier... (sauf que ça s'arrête à G et non H contrairement à tes premières indications).
Pour le reste (que je n'ai pu m'empêcher de regarder un peu ! ), ton code est plutôt de bonne qualité mais j'aurais 3 conseils :
1) Eviter de multiplier les modules standard (n'ajouter un module que si intrinsèquement justifié !)
2) Indenter de façon un peu moins fantaisistes (indentations non justifiées par une instruction, indentations multiples ou de largeurs variables, non indentation à la marge [qui doit permettre la visualisation immédiate des étiquettes de branchement, lorsqu'il y en a, entre Sub et End Sub...])
3) Placer les procédures non évènementielles d'un module de feuille dans la zone "Général", soit en tête du module (après les déclarations de niveau module), et laisser positionner les évènementielles par VBA (on les retrouvera toujours plus vite !).
Cordialement.