Re,
Une véritable mitraillette à questions ...!!!
If IsError(Application.Match(c, Ref, 0)) Then message = message & IIf(Len(message) = 0, "", ", ") & c
Explication :
1. Application.Match(c, Ref, 0) signifie trouve la ligne sur laquelle se trouve c dans la plage Ref
2. If IsError signifie si c'est une Erreur ... et qu'elle ne s'y trouve pas ... modifie le message pour y ajouter cette valeur manquante
En espèrant que cette explication soit assez claire ..