Microsoft 365 Cellule avec un index , 129 0341 ou 1290341 avec ou sans trait-d’union et espace ???

Nicodan

XLDnaute Nouveau
Bonjour j’ai besoin de votre aide pour un autre problème, merci à l’avance …

Si j’inscrit dans la cellule C12 un numéro exemple 129-0341 et il est inscrit de la même façon dans mon index il n’y a pas de problème, mais si je ne mets pas le trait-d’union ex : 129 0341 ou 1290341 ça ne fonctionne pas ????? donc est-ce qu’il existe une formule pour régler ce problème?
 

Pièces jointes

  • test.xlsx
    92.7 KB · Affichages: 12

laurent950

XLDnaute Accro
Bonjour qu'elle est votre soucis, je comprend pas vraiment si je peux aider
en =EQUIV(C12;A24:A77;0)

ci le code est écrit avec un tiret dans cette matrice A24:A77 pour 129-0341 alors en C12 il faut écrire 129-0341
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nicodan,Laurent,
En trichant un peu : on prend les 3 caractères à gauche & "-" & les 4 caractères à droite. ;)
VB:
EQUIV(GAUCHE($C$12;3)&"-"&DROITE($C$12;4);$A$24:$A$77;0))
Ca marche à tous les coups si le format du code est Texte.
Et comme j'ai horreur des cases intermédiaires, j'ai viré H22 et remis toutes les formules carré.
 

Pièces jointes

  • test (5).xlsx
    96.4 KB · Affichages: 6

Nicodan

XLDnaute Nouveau
Bonjour qu'elle est votre soucis, je comprend pas vraiment si je peux aider
en =EQUIV(C12;A24:A77;0)

ci le code est écrit avec un tiret dans cette matrice A24:A77 pour 129-0341 alors en C12 il faut écrire 129-0341

Si le client cherche un numéro de référence, il inscrit dans ma cellule C12 , il ne mets pas de trait-union et que moi dans ma liste d’index j’ai inscrit un trait-d’union ça ne fonctionne pas .

Est-ce qu’il y a une formule pour dire que 129-0341, 129 0341 ou 1290341 est la même chose pour ma cellule C12? merci ;)
 

Nicodan

XLDnaute Nouveau
Bonjour Nicodan,Laurent,
En trichant un peu : on prend les 3 caractères à gauche & "-" & les 4 caractères à droite. ;)
VB:
EQUIV(GAUCHE($C$12;3)&"-"&DROITE($C$12;4);$A$24:$A$77;0))
Ca marche à tous les coups si le format du code est Texte.
Et comme j'ai horreur des cases intermédiaires, j'ai viré H22 et remis toutes les formules carré.
Bonjour Nicodan,Laurent,
En trichant un peu : on prend les 3 caractères à gauche & "-" & les 4 caractères à droite. ;)
VB:
EQUIV(GAUCHE($C$12;3)&"-"&DROITE($C$12;4);$A$24:$A$77;0))
Ca marche à tous les coups si le format du code est Texte.
Et comme j'ai horreur des cases intermédiaires, j'ai viré H22 et remis toutes les formules carré.
Merci beaucoup ça fonctionne !;)
 

Nicodan

XLDnaute Nouveau
Le mieux c'est de passer par du code VBA c'est je pense incontournable
a quoi cela sert la cellule :
B9 : =INDEX(C24:C77;H22)
H22 : =EQUIV(C12;A24:A77;0)

Vous avez des Notion VBA ?
La liste ci dessous de la ligne 23 vers le bas de la feuille (qui la remplis ?)

Et au dessus qui inscrit en C12 le code ?
Puis ce code il faut le connaitre ou chercher dans la liste en que j'ai cité de la ligne 23 vers le bas ?
Bonjour Laurent non mais la solution de Sylvanu fonctionne ! merci;)
 

Nicodan

XLDnaute Nouveau
Bonjour Nicodan,Laurent,
En trichant un peu : on prend les 3 caractères à gauche & "-" & les 4 caractères à droite. ;)
VB:
EQUIV(GAUCHE($C$12;3)&"-"&DROITE($C$12;4);$A$24:$A$77;0))
Ca marche à tous les coups si le format du code est Texte.
Et comme j'ai horreur des cases intermédiaires, j'ai viré H22 et remis toutes les formules carré.
Bonjour Sylvanu, j'ai un problème avec les numéros avec des lettres ex: 151G0049 ou 125008JL5C3AAAAA, ça fonctionne très bien avec les numéro sans lettre ??? merci:oops:
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Regardez votre post #1, le format est censé être 3 caractères un tiret 4 caractères.
Il est évident qu'avec un autre format d'entrée, ça ne marche pas.
Donnez nous vos formats possibles, quelles sont les erreurs possibles et ce que vous attendez.
Mais s'il faut traiter 129-0341 , 151G0049 ou 125008JL5C3AAAAA, vous voyez bien que vous êtes dans une impasse.Le seul moyen pour le coup est le VBA à condition que vous donniez toutes les règles.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Relisez bien le titre du post :
Cellule avec un index , 129 0341 ou 1290341 avec ou sans trait-d’union et espace ???
Avec par exemple 125008JL5C3AAAAA , imaginez le nombre possible de faute de l'utilisateur :
1250-08JL5C3AAAAA , 125008JL5C3 AAAAA , 125008JL5C3AAAA-A, même en VBA couvrir toutes les erreurs de toutes les configs va être complexe.
En plus, je pense que dans le vrai fichier de Nicodam il n'y a pas que ces trois types de références mais d'autres. Bon courage.
 

Discussions similaires