Aide recherche chaine de caractères dans matrice et renvoi No. ligne

Chincha

XLDnaute Nouveau
Bonjour,

J'essaie sans succès depuis hier à écrire une fonction à priori toute simple, mais je bute sur les limitations des fonctions Excel non-matricielles.

Il s'agit de rechercher une chaîne de caractères dans une matrice et renvoyer son numéro de ligne.
Pour simplifier, j'ai 2 feuilles de valeurs.
Une feuille 1 contenant 4 colonnes de valeurs :
  • A: Code interne,
  • B: Reférence Fournisseur 1,
  • C: Reférence Fournisseur 2,
  • D: Reférence Fournisseur 3.
Une feuille 2 contenant 1 colonnes de valeurs, et 2 colonnes de contrôle/recherche :
  • A: Référence Fournisseur
  • B: Match = vérifie si la Référence en colonne A est présente dans une des colonnes BCD Feuil1 (OUI/NON).
  • C: Code = renvoie le Code interne correspondant de la colonne A feuille 1 si la Ref. est trouvée dans une des colonnes B, C ou D en feuille 1.

Je joins un exemple en PJ pour mieux visualiser.
Merci d'avance pour m'aider à avancer un peu !
 

Pièces jointes

  • Exemple.xlsm
    16.1 KB · Affichages: 17

sylvanu

XLDnaute Barbatruc
Supporter XLD
Exact. Je l'ai reproduit.
Comme le besoin était une recherche sur plusieurs colonnes, je n'ai pas testé sur une seule.:(
Je vais regarder comme solutionner.
dans votre exemple, remplacez Arbolog!M:M par Arbolog!M:O, ça devrait marcher.


Ci dessus la réponse Non est correcte car la valeur n'est pas dans la première colonne. Si la valeur est présente, ça marche correctement. Voir PJ.
J'ai testé en pas à pas, je ne vois pas ce qui pourrait ne pas marcher
 

Pièces jointes

  • Exemple (V3).xlsm
    26.5 KB · Affichages: 2
Dernière édition:

Chincha

XLDnaute Nouveau
Exact. Je l'ai reproduit.
Comme le besoin était une recherche sur plusieurs colonnes, je n'ai pas testé sur une seule.:(
Je vais regarder comme solutionner.
dans votre exemple, remplacez Arbolog!M:M par Arbolog!M:O, ça devrait marcher.


Ci dessus la réponse Non est correcte car la valeur n'est pas dans la première colonne. Si la valeur est présente, ça marche correctement. Voir PJ.
J'ai testé en pas à pas, je ne vois pas ce qui pourrait ne pas marcher
Non, le problème est toujours identique ;). Dans les 2 cas cela devrait renvoyer le code 03.07.01.01.
Le but est de contrôler si la valeur 576147 est présente dans une des colonnes de la feuille 1, si oui renvoyer le Code correspondant 03.07.01.01.
Je ne vois qu'une différence entre les 2 captures, j'ai dans le premier cas la valeur "576147" en argument et la valeur \"576147" (antislash devant) dans le 2e cas ce qui semble être un problème de format cellule ou Variable (Texte vs. Nombre ou Standard) ???
 

Chincha

XLDnaute Nouveau
Merci beaucoup Sylvanu, elle fonctionne en effet dans l'exemple, mais pas complètement dans le fichier réel. Il s'agit bien d'un problème de format cellule, la fonction ne trouve les références qui ont un format numérique (ce qui est le cas pour la valeur 576147), mais fonctionne pour les valeurs alphanumériques.
Cela fonctionne aléatoirement lorsque je force le format de toutes les cellules au format Texte au lieu de standard, à voir si c'est un souci de rafraichissement ou calcul auto des fonctions.
Je vais résoudre le problème, merci beaucoup pour l'aide en tout cas, c'est juste un détail à régler :):):)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans la V5, je transforme le nombre en chaîne, peut être que cela peut aider.
VB:
Application.Match(CStr("*" & NRef & "*"), Plage, 0)
Ce n'est vrai que si c'est la valeur cherchée mais pas dans la matrice de recherche.
 

Pièces jointes

  • Exemple (V5).xlsm
    29.6 KB · Affichages: 5

Chincha

XLDnaute Nouveau
Merci Sylvanu, pour la correction.
Je pense avoir trouvé la cause : j'aurai du être plus attentif à l'erreur évoquée au #4, car elle ne s'affichait pas pour moi, et pour cause puisqu'il y a des liaisons de données automatiques dans le fichier client ce qui explique les soucis de calculs aléatoires ou de rafraîchissement.
Je vais repartir sur un classeur xls propre et retester tout ça demain à froid.
Merci pour tout !
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA