Recherche d'une cellule dans une liste par présence de chaîne de caractères

Alexxpz

XLDnaute Nouveau
Bonjour à tous en cette journée ensoleillée :)
Avis aux Excellent Exceleurs !

Contexte :

Voici mon problème : J'ai une base de donnée comprenant des codes de la forme "511-X1234" avec parfois une lettre qui vient se rajouter à la fin, donc un code qui a parfois la forme "511-X1234X" sur une feuille dans Excel (appelons la Base de données).
Sur une autre feuille (appelons la feuille CODE) j'ai la liste des codes par ordre alphabétique, cependant tous de la forme "511-X1234". Autrement dit, sur la feuille CODE je n'ai que les codes disons "simplifiés", ne comprenant pas les possibles lettres en fin de ligne (le deuxième X).

But :

Je dois affecter, sur une colonne à côté, pour chacun de mes codes de ma feuille CODE, le code exact de ma feuille Base de données.
J'ai donc utilisé cette formule : =RECHERCHEV($G2;PtsStruct!A$2:A$11118;1;FAUX)
"PtsStruct!" correspondant à ma feuille Base de données ici, qui comporte environ 11000 codes.

Problème rencontré :

Pour la plupart des codes, cette formule marche car le code de la feuille CODE correspond EXACTEMENT au code de la feuille Base de donnée. Cependant, lorsque que le code de la base de donnée contient une lettre en plus à la fin, la valeur trouvée est #N/A.
Prenons un exemple :
Code feuille Base de donnée : 511-D1234
Code feuille CODE : 511-D1234
Valeur trouvée par la formule : 511-D1234

Code feuille Base de donnée : 511-D1234E
Code feuille CODE : 511-D1234
Valeur trouvée par la formule : #N/A

Question :

Connaissez-vous un moyen de contourner le problème en recherchant par exemple seulement la présence de la chaîne de caractères dans chaque cellule et si elle est présente alors afficher le contenu de la cellule dans ma colonne de la feuille CODES que je dois remplir ?

Merci d'avance et désolé pour le long topic !
Alexxpz.
 

leop93

XLDnaute Occasionnel
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Bonjour Aleexpz

Peut être avec l'utilisation d'un ? s'il n'y a qu'un caractère ou d'un * s'il y en a un nombre indéterminé ?

Quoi que, ta recherche, tu l'as fait en tapant la valeur dans un UserForm non ? Si c'est le cas, je ne sais pas si ça fonctionnera...

Bonne journée

Leop93
 

GIBI

XLDnaute Impliqué
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Bonjour,

Comme tu l'a dit il faut chercher (avec la fonction Cherche qui ne tient pas compte des minuscule/majuscule) si la donnée contient la valeur

{=INDEX(PtsStruct!A$2:A$11118;EQUIV(1;CHERCHE($G2;PtsStruct!A$2:A$11118;1);0))}

à valider par Ctrl+Shift+Return

GIBI
 
Dernière édition:

Alexxpz

XLDnaute Nouveau
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Bonjour à vous !

Merci de vos réponses, malheureusement pour celle de leop, le "*" ne marche pas, ou alors je ne le mets pas au bon endroit, je l'ai ajouté à la suite de "$G2" pour que cela cherche une chaine comportant G2 puis quelque chose. Mais cela n'a pas marché, la formule est incorrect :/

Pour GIBI, la formule m'indique "#VALEUR!", cela n'a pas l'air de fonctionner :/

Je suis toujours preneur pour une solution si vous en trouvez !

Cordialement, Alexxpz.
 

Alexxpz

XLDnaute Nouveau
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Oui mais le problème Leop c'est que dans ma formule je n'ai pas D-1234 mais $G2 qui correspond à chaque case de la ligne de code, donc dans la formule ça donnerait =RECHERCHEV($G2& *;PtsStruct!A$2:A$11118;1;FAUX) ce qui ne marche pas ^^
 

GIBI

XLDnaute Impliqué
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

alex..

pour la PJ, Il faut simplifier ton classeur (supprimer des lignes) et le zipper et choisir"aller en mode avancé"


sinon Leop93 à raison tu peux écrire =RECHERCHEV($G2 & "*";PtsStruct!A$2:A$11118;1;FAUX) pour commence par la valeur
et =RECHERCHEV("*" & $G2 & "*";PtsStruct!A$2:A$11118;1;FAUX) pour contient la valeur


Voici un exemple de ma formule
 

Pièces jointes

  • exemple.xls
    18 KB · Affichages: 57
  • exemple.xls
    18 KB · Affichages: 49
  • exemple.xls
    18 KB · Affichages: 53
Dernière édition:

Alexxpz

XLDnaute Nouveau
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Voilà j'ai mit quelques lignes de codes qui me posent problème dans les 2 autres feuilles de ton exemple et j'ai renommé les feuilles comme je les ai chez moi.
Le principe est d'attaché dans la colonne Pt Structure 1 le premier code correspondant.
Je devrai ensuite attaché à la colonne "Libellé 1" le Libellé correspondant au code choisi (qui se trouve dans la feuille PtsStruct).

Dans ces cas là, tu peux observer que pour un code de ma feuille Tri par Unité on peut rattacher plusieurs code de ma feuille PtsStruct, par exemple au code 511-G1501E on peut rattacher 511-G1501EM1 et 511-G1501EP1
Dans ce cas là, la colonne "Pt Structure 2" et "Libellé 2" interviennent (je te laisse comprendre pourquoi ^^)

Ca fait quelques jours que je galère dessus et je désespère vraiment, je sais coder en C mais pas du tout en Excel..

Cordialement, Alexxpz.
PS : Déjà merci pour l'aide que tu m'as apportée pour le moment ^^
 

Pièces jointes

  • exemple.xls
    28.5 KB · Affichages: 69
  • exemple.xls
    28.5 KB · Affichages: 80
  • exemple.xls
    28.5 KB · Affichages: 77

Alexxpz

XLDnaute Nouveau
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Super ! La formule marche avec l'étoile, je n'avais juste pas réussi à mettre la bonne synthaxe. Merci à vous deux énormément !

Avez-vous une idée pour la suite que j'ai décrite dans mon dernière message ?
C'est à dire faire apparaitre dans la colonne d'à côté, le libellé (nom) de l'objet trouvé via le code.
En C, j'y arriverais mais en Excel je ne sais vraiment pas par quel bout attaquer !

Encore merci !
 

GIBI

XLDnaute Impliqué
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

alex..,

Voici l'exemple en prenant le 1ier pui le 2eme, Etc..

Par contre avec le 511-G1501F il y en a plus de 4!


Pour Info :

Nb.SI : compte le nombre de valeurs correspondant au préfixe recherché
Equiv : donne le rang (l'occurence) de la valeur dans la matrice
Index : permet de ramener la valeur d'une matrice en fonction d'un numéro de rang
 

Pièces jointes

  • exemple.xls
    27.5 KB · Affichages: 66
  • exemple.xls
    27.5 KB · Affichages: 67
  • exemple.xls
    27.5 KB · Affichages: 65
Dernière édition:

GIBI

XLDnaute Impliqué
Re : Recherche d'une cellule dans une liste par présence de chaîne de caractères

Et pour le cas où il y en a plus de 4, il suffit d'incrémenter la valeur,

mais attention de valider la formule avec Ctrl+Shift+Return


GIBI
 

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 598
Membres
103 255
dernier inscrit
MANS29