Bonjour Marc084 et JExcel2fr,
Pour effectuer une recherche dans une table, il ne faut pas utiliser CHERCHE (qui cherche dans un texte) mais bien RECHERCHEV ou RECHERCHEX ou INDEX avec EQUIV.
Donc plusieurs solutions.
Comme c'est un cas simple avec l'élément à rechercher dans la première colonne, j'ai utilisé RECHERCHEV.
Comme l'onglet de travail contient PLUSIEURS clés de recherche (ce n'est vraiment pas à conseiller), il faut impérativement en choisir une et donc, j'ai pensé que le plus grand (càd celui qui est à la fin) devait être prioritaire. Donc j'ai utilisé la fonction DROITE de 8 caractères (chance que tous les numéros sont de 8 chiffres).
Ensuite, ces numéros étant en mode texte, je les transforme en mode numérique car la base de données est en base numérique.
Et enfin, comme les numéros ne correspondent pas nécessairement de manière exacte à un numéro de la table, j'utilise le paramètre VRAI (ou omis) dans la fonction. A noter que, lorsque l'on utilise une recherche en mode VRAI, il faut impérativement que la table soit triée en ordre croissant - ce que j'ai fait.
Cela donne donc :=RECHERCHEV(CNUM(DROITE([@[num lot]];8));Tb_PURE;3;VRAI).
En choisissant le mode approximatif, la fonction prendra en considération la valeur égale ou la plus petite approchante :
Exemple : si on cherche 21350003 21355003 21355004 la fonction cherchera sur 21355004 et comme dans la table la valeur la plus petite approchante est 21350005, c'est celle-ci qu'il choisira.
J'espère avoir répondu à ta question
Bonne continuation
Chris