En fait, mon tableau de recherche
Application.Index(arr, 0, 1)
n'était pas vide, je ne comprenais pas pourquoi j'avais l'erreur 2042 alors que je savais que la valeur recherchée existait bien mon tableau/colonne de recherche.
J'ai fini par comprendre qu'en fait le Match comparait prenait comme élément de comparaison soit un String, soit un Integer.
En effet, j'avais des valeurs (à comparer) comme :
0025672839 => est considéré comme un String puisque çà commence par des zéros
3357657807 ==> est considéré comme un Integer ==> Et ça plantait (Erreur 2024)
Or le tableau d'Array "arr" est surement un tableau de String j'imagine, du coup comparer un Integer à un String mettait la fonction Match en Erreur.
La solution a été de ne plus utiliser :
pos = Application.Match(Selection.Value, Application.Index(arr, 0, 1), 0)
Mais :
Dim valeur as String
' Formate en String si Selection.Value est un integer
valeur = Selection.Value
pos = Application.Match(valeur, Application.Index(tab_exemple, , 1), 0)
Et ça a marché.
Toutefois, merci pour votre aide !