Problème fonction recherchev Excel 2007 [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 juillet 2012
-
 Tulipe 13 -
Bonjour à tous,

Je sollicite votre aide aujourd'hui concernant un problème que je rencontre sur Microsoft Excel 2007 avec la fonction recherchev. Malgré mon très bon niveau d'utilisation d'Excel, je ne parviens pas à trouver la raison pour laquelle ma recherchev ne marche pas alors qu'il n'y a vraiment ABSOLUMENT rien de compliqué. J'ai eu beau passer des heures pour chercher l'origine du problème sans succès !

Description du problème :

J'ai un tableau avec 2 colonnes. La 1ère colonne contient des valeurs numériques ou alpha-numérique. Dans la 2ème colonne, il y a uniquement 2 valeurs possibles ("Plein" et "Vide").
Ma fonction recherchev qui est situé juste au dessus du tableau me renvoie la valeur "#N/A".
Voici le détail de ma fonction : =RECHERCHEV(C3&D3;$C$5:$D$36;2;FAUX).
Les cellules C3 et D3 que j'utilise dans ma fonction ont pour valeur 12 et 6 comme vous pouvez le voir juste en dessous.

Voilà, c'est tout simplement ahurissant mais ça ne marche pas avec certaines valeurs en cellule C3 et D3 comme 12 et 6 mais ça marche avec d'autres valeurs comme 12 et 7.

Je dois dire que lorsque je bute face à un problème compliqué je garde mon sang froid mais lorsqu'il s'agit d'un truc hyper simple comme celui-ci, je pète littéralement les plombs.

12 6

#N/A

83 Plein
84 Plein
85 Plein
86 Plein
91 Plein
92 Plein
97 Plein
109 Plein
119 Plein
122 Plein
123 Plein
124 Plein
125 Plein
126 Plein
132 Plein
133 Plein
142 Plein
157 Plein
158 Plein
159 Plein
167 Plein
168 Plein
169 Plein
212 Vide
993 Plein
1110 Plein
1510 Plein
1610 Plein
1010 Vide
101010 Vide
10102 Vide


Par pitié, si l'un d'entre vous peut me trouver une solution sans passer par VBA (que je ne sais pas utiliser) et en utilisant la fonction recherchev, ça m'arrangerait beaucoup pour continuer car ce petit travail fait partie intégrante d'un plus gros travail qui devra lui aussi être modifié en profondeur si je n'utilise pas la fonction recherchev dans le cas présent.

Merci pour toute l'aide que vous pourrez m'apporter.


15 réponses

Messages postés
5
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 juillet 2012
12
Bonjour Bastien,

Je viens de voir à l'instant que tu as posté ce matin et je te remercie pour ton aide.

Je vais tenter à nouveau d'expliquer mon problème (en apparence très simple) de manière à ce que tout soit parfaitement clair et plus détaillé. Aussi, pour faciliter ta compréhension, je vais modifier un petit peu l'exemple que j'ai fourni dans mon dernier post.

Pour commencer, j'ai 2 cellules C3 et D3 qui contiennent chacune une liste déroulante. Ainsi, à l'aide de la liste déroulante, je peux sélectionner à souhait les valeurs que je veux faire apparaître en C3 et D3 (soit des chiffres ou des lettres).

2 lignes en dessous de la cellule C3 (c'est à dire en C5), j'ai rentré la formule suivante:
=C3&D3

Ainsi, dans la cellule C5, j'ai tout simplement assemblé les valeurs contenues dans C3 et D3.
Le contenu de la cellule C5 peut être numérique et donc être composée uniquement de chiffres (ex: 126 ou 172). Sinon le contenu de la cellule C5 peut être alphanumérique et donc être composé à la fois de chiffres et de lettres (ex: 16A ou 17A).

2 lignes en dessous de la cellule C5, j'ai un tableau avec 2 colonnes.
Dans la première colonne, on a une valeur numérique ou alphanumérique.
Dans la deuxième colonne, on a seulement 2 valeurs possibles ("Plein" et "Vide").


L'objectif de ma fonction recherchev, c'est de prendre le contenu de C5 et de le chercher dans la première colonne de mon tableau pour me renvoyer la valeur correspondante de la 2ème colonne du tableau.

Voilà, une simple et basique fonction recherche v qui pour des raisons que j'ignore ne marche pas malgré toute l'expérience dont je dispose.
Voici le détail de ma formule que j'ai rentré juste au dessus de mon tableau (cellule C6) :

=recherchev(C5;$C$7:$D$60;2;faux)

Comme tu le constates, ma formule est juste et n'a strictement rien de compliqué.

J'ai remarqué en faisant quelques tests que la fonction ne parvient pas à trouver le contenu de la cellule C5 dans la première colonne de mon tableau alors qu'elle y est forcément. En effet, en construisant mon tableau, j'ai fait en sorte que TOUTES LES VALEURS de la première colonne puisse être retrouvées par ma fonction recherchev.


Voilà donc le problème qui me rend dingue et pour lequel je n'ai pas de solutions.
J'aurai été tenté d'utiliser une solution de contournement mais le problème, c'est que ce tout petit travail fait partie d'un ensemble beaucoup plus vaste et si je n'utilise pas la recherchev, je devrais modifier en profondeur tout le reste.

Je suis un nouveau sur le forum et je ne sais pas si je peux joindre un fichier pour présenter mieux la situation.
Si tu as un mail sur lequel je puisse te l'envoyer n'hésite pas à me le faire parvenir.


Merci d'avance pour toute l'aide que toi ou d'autres sur ce forum pourront m'apporter.


David.
13
Merci

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

CCM 60511 internautes nous ont dit merci ce mois-ci

Bonjour,
Le tableau sur lequel la recherche est faite doit être dans l'ordre alphabétique !!!
Messages postés
52430
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
14 271 > KVB5767
Non ! Ce serait le cas si le dernier argument de la formule avait été VRAI à la place de FAUX ...
mets toi sur ta 1ere colonne et cliques sur le bouton CONVERTIR et fais continuer et continuer.
Messages postés
61
Date d'inscription
dimanche 26 décembre 2010
Statut
Membre
Dernière intervention
1 avril 2020
4
Je crois avoir trouver la solution

tu veux savoir si la 16A ou 17A par exemple est plein ou vide

la fonction se divise en 4 partie

valeur rechercher = C5

table matrice= toutes les données dans le quel il va chercher C5 AINSI QUE LES DONNÉES OU IL VA AFFICHER SA RÉPONSE là est la petite erreur tu ne considère dans ta matrice que la colonne D, il faut que tu mette tes 2 colonne dans ta table matrice.

no_index_col =2, la colonne où il va avoir la réponse afficher en rapport avec sa rcherche (ex il cherchait 16A, il va afficher la cellule à coter du 16A en l'occurrence la collone 2 de ta matrice)

valeur proche FAUX



Bref l'erreur c'est ta matrice, il faut qu'il y ait ton info recherché ainsi que la réponse donc si la colonne C est la colonne des données alfanumérique et D la colonne des plein/vide, tu doit mettre dans ta matrice $C$8:$D$60
Messages postés
61
Date d'inscription
dimanche 26 décembre 2010
Statut
Membre
Dernière intervention
1 avril 2020
4
en passant pour que ta fonction marche tes 2 cellules à choix déroulant doivent être rempli

ex:
C____D
16___A

car étant donnée que le C5 est une combinaison des 2 autres cellules ça ne fonctionne pas si l'une des 2 est vide, solution à ça, tu peux ajouter une autre fonction qui recherche directement ta cellule C3


2e note à ton premier message le 12____6
pour rechercher 126 ne fonctionne pas, tu ne peux pas séparrer 2 chiffre tout seul, parcontre si tu recherche 126A, j'ai remarquer que tu peux écrire 12____6A et sa fonctionne


3e note https://www.cjoint.com/ pour joindre un fichier Excel par exemple, très utile à la compréhension
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
Bonsoir
compte tenu de ce que vous dites, il est fort probable qu'il y ait un mélange de alpha et de numérique dans votre liste en colonne, alors que la concaténation en C5 vous donne dans tous les cas un format texte.

Vous pouvez vérifier avec clic / format de cellule / alignement / horizontal / standard et si les données de la colonne C vont à droite ce sont des valeurs num, à droite des valeurs textes

et si votre colonne de recherche n'est pas dans tous les cas en format texte vous ne vous en sortirez pas sauf peut être avec un artifice compliqué, comme par exemple:

=RECHERCHEV(SI(ESTERREUR(C5*1);C5;C5*1);$C$7;$D$60;2;0)

ou encore pour garder votre formule au plus simple:
en C5
=SI(ESTERREUR(C3&D3)*1;C3&D3;C3*D3*1)
qui fera le travail au niveau de C5

et qui transformera votre concaténation de C5 en valeur num ou la conservera en alpha suivant les cas.

Mais il est probable que ça ne règle pas tout et que le mieux serait de réécrire votre colonne C7:C60 en format texte ou en entrant une apostrophe en tête de façon à garantir le format texte

Bonne chance

Crdlmnt
ne sommes nous pas seuls à comprendre ce que l'on explique?
Messages postés
52430
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
14 271
Bonjour pressidor.

J'étais en voyage, début juin, et ce n'est que maintenant que je vois ta discussion.
Tu écris le 29 juin dans le post #3 :
2 lignes en dessous de la cellule C5, j'ai un tableau avec 2 colonnes. 
Dans la première colonne, on a une valeur numérique ou alphanumérique. 
Dans la deuxième colonne, on a seulement 2 valeurs possibles ("Plein" et "Vide")
C'est là l'erreur : le nombre 126 et le mot "126" ne sont pas la même donnée pour la fonction RECHERCHEV. Ta colonne C ne doit contenir que du texte, car tu compares avec un texte, la concaténation C3&D3, qui n'est pas un nombre ...
Le remède : Sélectionne la plage C7:C60 et mets-la au format TEXTE.

Cordialement.
Messages postés
52430
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
14 271
Salut, pressidor.

Ton erreur a consisté à appliquer à TOUTES les cellules de la Feuil1 le format TEXTE.
Aussi les formules ne fonctionnent plus.

Pour preuve, place-toi en D4 et saisis la formule =F3&G3, et tu constateras que c'est ce texte qui reste affiché, mais que la formule ne s'exécute pas !

Seules les plages F5:G364 et J3:AS4 doivent être au format TEXTE, toutes les autres restant au format STANDARD ou NOMBRE.
Messages postés
61
Date d'inscription
dimanche 26 décembre 2010
Statut
Membre
Dernière intervention
1 avril 2020
4
est-ce que ton but avec la rechercheV c'est de voir les "vide" ou "plein

il est toujours plus facile pour t'aider de savoir qu'est-ce que tu veux avoir comme résultat pour qu'on puisse déterminer si tu utilise les arguments à la bonne place et de la bonne manière

une mise en situation peux faciliter notre compréhension de ton problème et une réponse plus précise
Bonjour à tous et merci pour votre aide.


J'ai exploré les uns après les autres les éléments de réponse que vous m'avez soumis.
Pour donner plus d'efficacité à la résolution de ce problème, j'ai mis à votre disposition un fichier excel que vous pourrez télécharger au lien suivant :

http://cjoint.com/data3/3GcxNzFsbnH.htm

(Je remercie au passage Bastien pour la recommandation qu'il m'a fait dans son post en m'invitant à utiliser le lien ci-dessus pour pouvoir partager le fichier avec vous.)


Concernant le post de Raymond et de Vaucluse,

je pensais effectivement (sans en être sur) que le problème était peut être lié au format des cellules. Par ailleurs, je viens de me rendre compte d'une chose assez curieuse que je n'avais pas mentionné au cours de mes précédents posts.
Je m'explique : le format initial des cellules d'une feuille excel est un format "standard". Cependant, lorsqu'on écrit du texte dans une cellule au format standard, celui-ci s'aligne à gauche et lorsqu'on écrit un nombre dans une cellule au format standard, celui-ci s'aligne à droite.
Et bien figurez-vous que dans la première colonne de mon tableau dont le format est de type standard, j'ai des chiffres qui s'alignent correctement à droite (comme des nombres) et d'autres qui ont décidés pour je ne sais quelle raison de s'aligner à gauche (comme du texte) !!
L'un d'entre vous a t'il une explication à cette bizarrerie ?

En outre, pour les chiffres qui ont décidé de s'aligner à gauche, j'aperçois un petit triangle vert dans le coin supérieur gauche des cellules. Lorsque je clique sur l'une des cellules où j'aperçois ce petit triangle vert, alors un petit point d'exclamation apparaît et en cliquant dessus, le menu déroulant apparaît et me dit "nombre stocké sous forme de texte" et me propose de "convertir en nombre".

Par curiosité et avant de tout passer en format texte comme vous le suggérez dans vos différents posts, j'ai essayé de sélectionner toutes les cellules de ma 1ère colonne pour les convertir en format nombre pour tenter de tous les aligner à droite. Cela n'a pas donné de résultat, certains nombres restent alignés à gauche et d'autres à droites. Mes cellules semblent ne pas vouloir accepter la conversion ! Pourtant, lorsque je vérifie le format des cellules qui sont restés alignés à gauche, c'est bien le format nombre qui est sélectionné (vous y comprenez kekchose vous ?!!).
Autrement dit, certaines cellules passent au format nombre et d'autres pour une raison que j'ignore n'y parviennent pas (celles où mon petit triangle vert apparaît). La seule solution que j'ai trouvé pour que mes chiffres alignés à gauche parviennent à passer en format nombre et à s'aligner droite, c'est de cliquer sur le petit point d'exclamation que j'ai évoqué plus haut et de cliquer sur "convertir en nombre". Le souci, c'est que je dois le faire séparément pour chaque cellule et ça devient donc bigrement fastidieux vu le nombre de cellules que je dois me taper.


Pour en revenir maintenant à ma recherchev, j'ai essayé conformément à ce que vous suggérez dans vos posts, d'adapter le format des cellules de mon tableau en texte. Car comme vous me l'avez si bien fait remarqué, j'ai concaténé 2 cellules (C3&D3) et, le résultat de cette concaténation (126) qui est contenu dans C5 est considéré par excel comme un texte et non pas un nombre (chose à laquelle je n'avais pas fait attention). J'ai donc tenté d'adapter le format de cellules de mon tableau en passant la 1ère colonne du format nombre au format texte et pour permettre de cette manière à ma fonction recherchev de fonctionner.

Et bien malgré cela, le problème persiste et ma fonction recherchev ne fonctionne toujours que pour certaines valeurs. Cela m'a paru assez étonnant car à priori, je ne voyais d'autres raisons qui pourraient empêcher ma recherchev de s'exécuter correctement. les cellules de mon tableau étaient cette fois-ci bien au format texte (toute la colonne était bien alignée à gauche) et du coup je ne voyais pas d'où venait le problème.
Et puis en y réfléchissant un peu, je me suis demandé si la conversion en format texte que je venais d'effectuer avait bien été prise en compte par excel. Même si au moment où j'ai effectué la conversion mes cellules se sont bien alignés à gauche, je me suis dit que peut-être les apparences étaient trompeuses. En cherchant à vérifier si ma conversion de format était effective, j'ai pris une cellule au hasard (celle qui contient la valeur 126) et j'ai ajouté un petit apostrophe au début de manière à garantir le format texte ('126) comme le proposait à juste titre Vaucluse dans son post et puis soudain BINGO. Ma recherchev fonctionne pour cette valeur.
J'en conclus que mes cellules n'étaient pas au format texte malgré la conversion que j'avais effectué (qu'en pensez-vous ?)

Mon seul souci maintenant, c'est que une fois de plus pour convertir toutes mes cellules en texte, je dois le faire manuellement (comme tout à l'heure avec mes nombres) en ajoutant à chaque fois, pour chaque cellule une apostrophe au début (j'ai un tableau de 350 lignes, je vous laisse donc imaginer le travail).

Comment paramétrer mes cellules pour avoir du format texte quand j'ai en besoin et du format nombre quand j'en ai besoin sans me prendre la tête à devoir deviner et vérifier à chaque fois que la conversion s'est bien effectuée ?
Je pense que ça devrait suffire à bientôt classer mon sujet parmi les RESOLUS. :)
Merci pour toute votre aide qui jusqu'ici a été précieuse.


Une dernière chose concernant le post de Bastien

"en passant pour que ta fonction marche tes 2 cellules à choix déroulant doivent être rempli

ex:
C____D
16___A

car étant donnée que le C5 est une combinaison des 2 autres cellules ça ne fonctionne pas si l'une des 2 est vide, solution à ça, tu peux ajouter une autre fonction qui recherche directement ta cellule C3".

Rassure toi Bastien, mes 2 cellules à choix déroulant sont toujours remplies.

N'hésiter pas à consulter le fichier excel pour me dire ce que vous en penser.
J'attends vos reply.
À très bientôt.
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
Bonsoir

je n'ai pas tout lu, mais je vous renvoie à une de mes propositions pour traiter le problème, que vous avez du zapper soit:

1°) sélectionner toute la feuille et passer le format de cellules en Standard, car il doit être pollué par des copies et il n'est pas toujours possible de placer même une formule
2°) ne vous occupez pas de savoir si vos données sont en num ou en texte
3°) utilisez cette formule en B4 qui traitera aussi bien du num que du texte
=SI(ESTERREUR(RECHERCHEV(F3&G3;$F$5:$G$364;2;0));RECHERCHEV((F3&G3)*1;$F$5:$G$364;2;0);RECHERCHEV(F3&G3;$F$5:$G$364;2;0))

elle renverra toujours #N/A lorsque la composition F3 G3 n'existe pas en colonne F

Revenez si cela vous pose problème, il suffit de rajouter quelques codes à cette formule.

crdlmnt
Messages postés
5
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 juillet 2012
12
Bonsoir Vaucluse,

J'avais oublié de préciser mais j'ai essayé ton petit artifice que tu avais proposé dans ton post plus haut et ça ne passait pas ou disons plutôt que ça passait pour certains cas et pas pour d'autres. J'ai senti rapidement que ça devenait un casse-tête impossible puisque qu'il me fallait à chaque fois vérifier dans quels cas ça marchait, quels cas ça ne passait pas, faire le rapprochement entre les situations ou ça passe et celle ou ça ne passe pas (un vrai méli mélo !).

Tu viens de me soumettre dans ton nouveau post une nouvelle formule. Elle est plus chargée certes mais elle reste vraiment très simple et en plus ça à l'air de passer. Bravo, je te félicite.

Je me demande quand même s'il n'y a pas une façon de paramétrer excel pour l'amener à accepter les changements de formats que j'effectue sur les cellules.
Lorsque je passe une cellule au format texte ou nombre, je veux qu'il l'accepte tel quel. Ainsi mes cellules avec des nombres pourront s'aligner à droite et mes cellules avec du texte pourront s'aligner à gauche (comme ça doit en principe se faire d'ailleurs).


Au plaisir de vous lire.

Cordialement
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
Dites nous ce qui ne marche pas la dedans que l'on voit ce qui coince:
https://www.cjoint.com/?BGetUQHYXFF
crdlmnt
Messages postés
5
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 juillet 2012
12
Je viens de consulter le fichier que tu as mis en partage. J'y ai retrouvé ta formule et comme je te l'ai dit précédemment, ta formule est simple et passe nickel et ma recherchev roule comme sur des roulettes.

Le seul petit problème que je souhaite maintenant résoudre concerne le format de mes cellules dans la 1ère colonne de mon tableau (colonne F). En effet, tu pourras remarquer en le consultant que dans certaines cellules, les chiffres s'alignent à droite alors que dans d'autres cellules, les chiffres s'alignent à gauche.
Normalement, si je ne dis pas de bêtises, dans une cellule qui contient du texte, l'alignement se fait automatiquement à gauche et les chiffres s'alignent automatiquement à droite (n'est ce pas ?).

C'est justement ça dont j'ai besoin. J'ai besoin que le contenu de mes cellules puissent s'aligner automatiquement à gauche lorsqu'elles contiennent du texte et qu'elles s'alignent automatiquement à droite lorsqu'elles contiennent des chiffres.

Donc, comment est ce que je peux changer le format de ma colonne F en format nombre de manière à ce que toutes les cellules de la colonne F s'alignent automatiquement à droite ?
J'ai beau le faire avec clic droit, format de cellule, nombre mais ça ne marche pas.


En espérant que tu m'as compris.
;)
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
Bonjour

Formatez la feuille en format nombre "Standard"
Entrez 1 dans une cellule hors champ
copier là
sélectionnez F5:F364
clic droit collage spécial
et cochez " Multiplication"
çà devrait s'arranger. Ca n'exclut pas d'utiliser la formule composée car (F3&G3) sont du texte.

crdlmnt
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
... et en complément, si votre feuille est au format standard les textes que vous entrez se mettront à gauche et les num à droite.
Mais ceux que vous entrez seulement, ce n'est pas toujours le cas si vos valeurs viennent de de données extérieures, d'où l'utilité" du petit "truc" ci dessus, car formater une cellule qui contient une valeur ne suffit pas pour modifier son statut num ou alpha.
crdlmnt
Messages postés
5
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 juillet 2012
12
Un grand merci à vous tous pour votre aide.
il ne me reste plus qu'à classer ce sujet parmi les résolus. (comment on fait?) :)
Messages postés
25366
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
5 521
On s'en occupe...
bonne route
J'ai une meillieure solution , un nouveau logiciel qui va vous permettre de faire vos rechercheV avec un simple clique ,juste en cochant les donnees que vous voulez avoir dans votre fichier resultat ... vous pouvez utiliser peu importe combien de fichiers Excel ou de feuilles Excel ... et la generation se fait dans des secondes avec un pourcentage d'erreurs de 0 %
Messages postés
52430
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
14 271
Ah oui ? Et où as-tu caché ce fameux logiciel ?