Difficulté avec recherchH

Bonjour à tous,

Je suis en train de réaliser un fichier et je butte sur la fonction RECHERCHEH.

J'ai mis en copier le fichier.

Je souhaite rechercher, dans un autre feuillet, un nom dans un tableau et afficher la valeur correspondante d'une ligne définie de ce tableau (3 par exemple).

J'ai réaliser la formule (feuille 2) pour le premier nom, mais j'ai une erreur en retour et je ne comprends pas pourquoi.

Donc si quelqu'un peut m'aiguiller, c'est sympas !

19taux-de-charge.xlsx (36.62 Ko)

Bonjour,

votre formule :

=RECHERCHEH(B2;Feuil3!B9:M41;Feuil3!4:4)

essaie de trouver la valeur B2 : LAMGHABER

dans la première ligne de votre tableau Feuil3!B9:M41

et elle doit renvoyé la valeur se trouvant en ligne Feuil3!4:4

et il n'y a pas d'info sur la quatrième paramètre...

En somme vous voyez bien qu'il y a un problème, non ?

Que voulez vous faire exactement ?

@ bientôt

LouReeD

Ok. Merci pour l'explication.

Pour le quatrième paramètres, j'avais essayé de mettre Faux mais sans plus de succès.

En gros dans la colonne C du tableau en feuille 2, en C2 je dois chercher la valeur B2 dans le tableau B9:M41 du feuillet 3 (B3 pour C3 et ainsi dessuite)

Et lorsque cette valeur est trouver, je veux afficher la valeur correspondante en ligne 3 (toujours du feuillet 3).

Je modifierai ensuite la ligne de retour de résultats pour compléter les autres colonnes D,E... du tableau feuille 2.

Merci pour l'aide.

J'espère avoir été assez clair dans mes explications .

Si je n'utilise pas la bonne fonction, j'irais me renseigner sur celle qui me sera proposée afin de mieux comprendre mon erreur.

Voir l'image :

sans titre

Le cadre bleu les limitations haute et gauche de votre tableau de recherche,

cadre vert la première ligne du tableau où la recherche de donnée va se faire ici c'est LAMGHABER pour la feuille2!C2

cadre orange, colonne où la fonction va trouver la valeur cherchée

cadre jaune la valeur de la ligne 3 de la feuille 3 que vous voulez renvoyer par la formule (?!)

cadre rouge c'est la ligne 3 du tableau qui sera réellement renvoyée...

N'y a t il pas confusion entre RechercheH et V ?

@ bientôt

LouReeD

Merci pour l'explication.

C'est le cadre jaune que je souhaite effectivement.

Le cadre rouge n'est pas souhaité .

Pour la confusion entre V et H :

Je croyais que recherche V c'était pour renvoyer une valeur dans une colonne donné et H pour une ligne donné ?

C'est cela ou non ?

Admettons un tableau en A1:Z26

Une recherche H d'une donnée, va chercher cette valeur dans la ligne 1 du tableau c'est à dire va rechercher la valeur dans les cellules allant de A1 à Z1

Une recherche V d'une donnée, va chercher cette valeur dans la colonne la plus à gauche du tableau, c'est à dire va chercher la valeur dans les cellules allant de A1 à A26

La lettre donne "l'orientation" de la recherche pour essayer de trouver la valeur recherchée.

Ensuite la fonction va retourner la valeur se trouvant dans ce tableau dans la même colonne ou ligne au niveau de la ligne ou colonne demandée.

Donc une Recherche H de LouReeD dans notre tableau exemple en retournant la 3 ième ligne de ce tableau :

Si LouReeD se trouve en colonne F alors la fonction renverra la valeur se trouvant en colonne F et en 3ième ligne Soit la valeur se trouvant en F3.

Dans votre formule, vous demandez de retourner la valeur se trouvant dans la même colonne que la valeur cherchée, mais la ligne voulue est en dehors du tableau !

Alors merci de bien vouloir mettre un résultat attendu en pointant la recherche dans le tableau et la valeur à retourner.

@ bientôt

LouReeD

LouReeD a écrit :

Dans votre formule, vous demandez de retourner la valeur se trouvant dans la même colonne que la valeur cherchée, mais la ligne voulue est en dehors du tableau !

Alors merci de bien vouloir mettre un résultat attendu en pointant la recherche dans le tableau et la valeur à retourner.

@ bientôt

LouReeD

D'accord.

J'ai modifié les formules dans le tableau 2 pour faire rentrer les valeurs recherché dans le tableau en feuille3.

Cela donne ceci :

=RECHERCHEV(B2;Feuil3!C3:M41;Feuil3!3:3;FAUX)

Mais j'ai un retour #valeur!

Et lorsque je cherche à faire de même pour la colonne F et ligne 5, j'ai un retour #Ref!

=RECHERCHEV(B2;Feuil3!C3:M41;Feuil3!5:5;FAUX)

Alors effectivement, je ne dois pas avoir compris le fonctionnement de la recherche !

Je vais faire un récap pour montrer ce que je souhaite faire :

Dans ce tableau :

inkedprob1 li

Avec le nom (entouré en bleu), je cherche à afficher des donnée du feuil3. C'est donc lui à chercher.

Dans ce tableau :

inkedprob3 li

Dans l'ensemble de ce tableau entouré en bleu, je souhaite retrouver le nom tu tableau feuil2 et envoyer la valeur entouré en rouge (correspondante à la ligne 3).

L'idée est que peux importe ou se trouve le nom, je veux envoyer la valeur de la ligne 3 correspondante à la colonne ou se trouvera le nom.

Encore merci pour l'aide et désolé si je comprends de travers l'explication .

Avec un dessin je comprend mieux ! Et ce n'est pas avec Recherche qu'il faut agir à mon sens...

Je réfléchis et je reviens

@ bientôt

LouReeD

Une solution :

passer par une fonction personnalisée !

Du coup le fichier passe en .xlsM au lieu de .xlsX

La fonction : LRD_Racherche

elle admet deux paramètres :

le premier : la référence de la cellule qui contient la valeur à chercher

le deuxième : le numéro de ligne de la feuille 3 qu'il faut retourner si la recherche est fructueuse

En cas de non "trouvaille" le message d'erreur : "Pas de correspondance !" s'affiche.

C'est le cas par exemple d'une recherche de "loureed" alors que dans le tableau c'est "LouReeD", en gros la fonction respecte la casse.

Voici le code de la fonction :

Function LRD_Recherche(La_Valeur As String, La_Ligne As Integer)
    Application.Volatile
    Dim Cel As Range
    For Each Cel In Range("TAB_Recherche")
        If Cel.Value = La_Valeur Then
            LRD_Recherche = Feuil3.Cells(La_Ligne, Cel.Column).Value
            Exit Function
        End If
    Next Cel
    LRD_Recherche = "Pas de correspondance !"
End Function

TAB_Recherche correspond au nom de la plage de recherche que j'ai donné sous Excel à savoir Feuil3!B9:M41

Si cette zone de recherche devait changer, alors il suffit de faire "Formules" / "Gestionnaire des noms" de sélectionner ce nom et de modifier la référence.

Le fichier :

@ bientôt

LouReeD

Ha oui c'est bien moins simple que je le pensais.

Je vais essayer de tester et appliquer ça dans la journée pour me familiariser avec la chose

En tout cas, merci beaucoup pour l'aide

Pas de soucis ! Merci @ vous pour les remerciements !

@ bientôt

LouReeD

Bonjour,

Après essai, c'est parfait.

Je te remercie beaucoup pour l'aide.

Et pour infos, j'ai rajouté une condition permettant de ne rien afficher s'il n'y a pas de nom à chercher dans el tableau en feuille2 soit :

=SI(B13<>"";LRD_Recherche(B13;3);"")

Encore merci pour l'aide VBA !

Pas de soucis !

Les intervenants sont ici par ça ! Bien qu'il n'y ait pas de "rôle" particulier pour chacun !

Merci de vos remerciements !

@ bientôt

LouReeD

Bon, me voilà de retour avec mon merdier

Avant de demander une solution, j'aimerais comprendre.

J'ai une cellule en "NOM Prénom".

Seulement, ma matrice de recherche est uniquement composé des "NOM".

Du coup, forcément, quand je lance la recherche avec RechercheV, il trouve pas car soit la valeur n'est pas exacte, soit renvoie n'importe quoi (genre une colonne et 10 lignes plus loin) lorsque je met l'argument Vrai à la fin (je sais pas pourquoi d'aillieur).

J'ai essayer de faire un truc avec les formules ESTNUM et CHERCHE mais j'ai l'impression que c'est plutôt pour trouver B dans une cellule Acf B plutôt que faire l'inverse (Trouver la cellule avec B quand on a que ACF B en point de départ).

Donc si jamais quelqu'un peut m'aider à éclaircir cela.

J'essaierai ensuite de faire ma popotte avant de revenir le cas échéant .

Merci par avance.

PS : je met quand même le fichier pour que vous voyez le problème. C'est dans le feuile1 et U43 que cela se trouve.

Rechercher des sujets similaires à "difficulte recherchh"