Calc: Recherche coordonnée du texte recherché dans colonne [Résolu/Fermé]

Signaler
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020
-
 mod77 -
Bonjour,

Je galère depuis trop longtemps pour si peu et si près du but alors je vous demande de l'aide svp.

J'ai acheté un lecteur de codes barres.
Lorsque je scanne un code, il se place en T3.
Ce code correspond à un des noms (aa, bb, cc, dd, ..) qui se trouvent dans une colonne de T4 à T16, et je veux:
1) retrouver ce nom dans la colonne T
2) avoir les coordonnées de (ligne, colonne) où se trouve ce nom dans cette colonne.

pour le 1) j'ai utilisé: RECHERCHE(T3;T4:T16;T4:T16) qui me donne un nombre en U3
pour le 2) j'ai utilisé: CELLULE("adresse";U3) que j'ai placé en V3

Mais le résultat est toujours $U$3 et pas ce que j'attends, pourtant c'est une simple recherche. alors que 1) fonctionne.
Pourquoi cela ne fonctionne pas SVP?





Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!

Passez en résolu si ça l'est!

2 réponses

Messages postés
52050
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
4 août 2020
13 830
Bonjour.

1) Ton titre évoque Calc, et tu es bien dans le forum Libre Office / Open Office ; pourtant tu sembles être équipé d'Excel 2002 (ta config) ...

2) C'est tellement mieux pour nous de consulter un fichier plutôt que de se battre avec une explication plus ou moins claire ... La preuve, ta formule ne donne pas "un nombre" mais le contenu de la cellule correspondant à T3. Alors envoie ton fichier
 1) Tu vas dans https://www.cjoint.com/ 
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (8192 Ko maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

3) La formule =CELLULE("adresse";U3) renvoie
la référence de la première cellule de l’argument référence, sous forme de texte.
C'est la formule =CELLULE("ligne";U3) qui renvoie
le numéro de ligne de la cellule de l’argument référence
; mais elle affichera 3, car le nom que tu cherches dans la liste est déjà celui saisi en T3 !
Il faut donc utiliser la fonction EQUIV qui te permet de délimiter la plage de recherche : =EQUIV(T3;$T$4:$T$16)

Cordialement.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57572 internautes nous ont dit merci ce mois-ci

Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020
46
Bonsoir Raymond Pentier,

Oui cela fait tellement longtemps que je ne suis pas venu que je n'ai pas mis mon profil à jour.

Merci pour votre réponse j'avais avancé aussi de mon coté avec ça:

Je reprends correctement le problème car je ne peux le joindre sans l'anonymiser:
J'ai un tableau:
A partir de la colonne "F4" j'ai des noms.
A partir de la colonne "B4" j'ai des infos de présence "Vrai" ou "Faux" qui peuvent être forcé ensemble à "Faux" ou "Vrai" via une case à cocher

En T3 est la cellule où est écrit le nom scanné

J'ai procédé par étape:
en U3: EQUIV(T3;F1:F107;0)
En V3 j'ai mis la concaténation de "B" et contenu de U3: =CONCATENER("B";U3)
en W3 j'ai mis : =SI(CELLULE("CONTENTS";INDIRECT(V3))=0;"VRAI";"FAU")

en V4 j'ai mis la concaténation de "F" et contenu de U3: = concatener("F";U3)
et en V5 j'ai ajouté l'affichage du nom de la ligne qui est en colonne "F" via: indirect(V4)

et enfin en B4 j'ai mis: =SI(T3=V5;SI(CELLULE("CONTENTS";INDIRECT(V3))=0;"VRAI";"FAU")

J'ai fais cela car je veux, lorsque je tape un nom en T3, que la colonne "B" passe de "FAUX" en "VRAI"

Mais le problème c'est que lorsque, via une case à cocher, je mets toute ma colonne "B" à l'état "VRAI" ou "FAUX"
cela fait disparaitre ma formule "=SI(T3=V5;SI(CELLULE("CONTENTS";INDIRECT(V3))=0;"VRAI";"FAU")" de la colonne "B"

Je pense qu' une macro serait plus simple mais je ne sais pas comment faire:
j'ai pris une zone texte mais après ???

Comment trouver les coordonnées du nom, saisi dans la zone de texte, dans la colonne "F" puis mettre un "VRAI" dans la colonne "B" à la bonne ligne ???

that is the problem??
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020
46
J'ai un peu avancé depuis hier et l'affaire se résume à faire une macro qui :
1) lit les coordonnées dans la cellule "V3"
2) écrit "VRAI" dans la cellule correspondant aux coordonnées lues dans "V3"

Quelqu'un peut-il m'aider à faire une macro qui fait ça SVP ?
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020
46
Bonjour Raymond Pentier,

J'ai enfin réussi à avoir ce que je souhaite par le biais d'une macro. Mais si je reviens vers vous c'est parce que dans cette formule où j'associe une concaténer et équiv
=CONCATENER("B";EQUIV(T3;F1:F107;0))

cela plante lorsque le nom recherché à un espace ou est mal écrit.

Existe -il une formule qui permet de trouver le 1er nom approchant celui tapé ?
exemple:
j'écris : "Adame" au lieu de "Adam"
j'aimerais qu'il l'affiche quand même puisqu'il est avant

Est-ce possible SVP ?
Messages postés
52050
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
4 août 2020
13 830 >
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020

Non ; pas à ma connaissance.
Ou alors il faudrait une formule énumérant tous les mots concernés ...
ok! merci à vous!