Re,
Arf ! je connais ce code...
Comme je te l'expliquais dans mon premier post, pour que ça marche il faut que la ListBox soit alimentée par la propriété [RowSource] ce qui n'est pas le cas dans l'exemple fournis. Tu dis que tu as trop de critères mais je n'en vois que 4 !... En pièce jointe ton fichier modifié. J'ai supprimé l'alimentation de la Listbox à l'initialisation de l'UserForm (d'ou la propriété [ColumnCount] mise à 4) et je l'ai remplacée par la propriété RowSource = Contacts. Pour Comprendre il te faut aller voir dans le Gestionnaire de nom (du ruban Formules) où la plage nommée Contacts est créée à l'aide de la formule Decaler. Ce qui la rend dynamique...
Après, il est possible que le reste du code ne fonctionne plus car avec une alimentation via RowSource (que je n'utilise jamais) certains codes ne fonctionnent pas (comme je reconnais les miens) et je n'ai pas envie de reprendre tout le projet...
Une dernière fois je te recommande d'utiliser des labels...