Calc: Recherche coordonnée du texte recherché dans colonne

Résolu/Fermé
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - Modifié par mod77 le 29/06/2016 à 16:29
 mod77 - 6 juil. 2016 à 10:21
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!
A voir également:

2 réponses

Raymond PENTIER Messages postés 58760 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 décembre 2024 17 252
29 juin 2016 à 17:05
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
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
30 juin 2016 à 22:56
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??
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
1 juil. 2016 à 16:48
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 ?
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
5 juil. 2016 à 18:12
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 ?
0
Raymond PENTIER Messages postés 58760 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 décembre 2024 17 252 > mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024
6 juil. 2016 à 02:59
Non ; pas à ma connaissance.
Ou alors il faudrait une formule énumérant tous les mots concernés ...
0
ok! merci à vous!
0