VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Hub

XLDnaute Occasionnel
Bonjour,

Je suis confronté avec un phénomène bizarre concernant la fonction RECHERCHE. (voir le fichier joint)

Avez-vous une explication et une solution à me proposer ?

D'avance merci,

@+
 

Pièces jointes

  • excel classique fonction recherche b.xls
    36.5 KB · Affichages: 55

pilou76

XLDnaute Occasionnel
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonjour,
Les valeurs de l’argument vecteur_recherche doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2 ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHE peut renvoyer une valeur incorrecte --> donc il faut trier en ordre croissant la colonne O
Bonne journée
 

Modeste

XLDnaute Barbatruc
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonjour Hub, pilou76, jacky67,

Je ne sais pas si j'ai compris correctement, mais pourquoi ne pas utiliser une autre formule en F6:
Code:
=RECHERCHEV(B6;DECALER(Fr;;EQUIV(B3;Feuil3!I2:T2;0)-1;;3);2;FAUX)

... et en I6, seul l'index de colonne variera:
Code:
=RECHERCHEV(B6;DECALER(Fr;;EQUIV(B3;Feuil3!I2:T2;0)-1;;3);3;FAUX)
 

Hub

XLDnaute Occasionnel
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonsoir au fil et à tous,

Toutes vos réponses sont justes et le je les adopte toutes.
J'ai enfin compris mon erreur d'interprétation concernant l'ordre croissant
Jacky, je n'ai pas encore pris le temps de tester ta solution sur le projet final, probablement vers la fin de la semaine prochaine, je n'ai pas votre niveau donc il me faut un peu de temps.

Modeste, ta solution fonctionne à merveille sur le fichier qui a servi d'exemple mais je n'arrive pas à la reconduire sur le projet final.
J'ai bien fait attention de modifier correctement le nom des feuilles, des cellules, des plages.
J'obtiens le message d'erreur suivant "#N/A
Je ne vois pas où est mon erreur. Le fichier final est trop lourd pour le joindre.
Avez-vous une piste de recherche à me communiquer ?

@+
 

Modeste

XLDnaute Barbatruc
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonjour,

J'ai un peu de mal à suivre ... les deux discussions seraient-elles en lien l'une avec l'autre? Si oui laquelle suit-on?
(déjà que Jacky67 se perd entre les Modeste) :D

@Hub: des pistes de recherche ... elles sont tellement nombreuses qu'on s'y perdrait aussi: des caractères d'espacement qui "traîneraient" derrière certaines données, des valeurs numériques dans une feuille, mais qui seraient considérées comme du texte dans l'autre, etc.)

Par contre, on n'a nullement besoin de ton fichier complet (un extrait significatif devrait suffire, sans les données confidentielles, le cas échéant)
 

Hub

XLDnaute Occasionnel
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonsoir Modeste et le fil,

Oui les 2 discussions sont liées. Faute d’avoir bien regardé, je pensais à tort que la première discussion était partie aux oubliettes.

Je joins à nouveau un fichier car pour moi ça parait plus simple. Tu y trouveras les questions ci-dessous. Je devine où se trouve mon erreur.
Pour comprendre comment fonctionne la formule en F6, mon idée était de la décomposer en 3 parties correspondant à EQUIV (B12) - DECALER - RECHERCHEV
Comme ça plante pour DECALER, je ne suis pas à même de comprendre à quoi correspond l'argument "table matrice" qui servira ensuite pour RECHERCHEV.
De ce fait, il est fort possible de mon erreur provienne de l'interprétation du N°_index_colonne. Dans cette application le N° vaut 2 ou 3. Mais dans le projet final?

@+
 

Pièces jointes

  • excel classique fonction recherche c.xls
    72 KB · Affichages: 45

Modeste

XLDnaute Barbatruc
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Ben mon cochon, ça c'est du travail de recherche pour essayer de comprendre! (si tout le monde en faisait autant, ce serait bien!)

Contrairement à ce que tu sembles croire, tu n'as pas, en B14, de "plantage". Tu obtiens seulement un message d'erreur, parce que le résultat de la fonction DECALER, dans le cas présent, donne une référence à une plage de cellules de 17 lignes et 3 colonnes ... afficher "ça" dans la seule cellule B14, ce n'est pas possible; d'où le message d'erreur!
Tu peux vérifier le résultat de la formule autrement: en B14, sélectionne -dans la barre de formule- tout ce qui se trouve après le signe '=' et appuie sur la touche F9. Dans la même barre de formule, tu devrais voir apparaître les valeurs figurant dans les 3 colonnes du tableau correspondant à la langue choisie en B3.

La fonction DECALER, dans la formule proposée, permet simplement de "pointer" vers la plage C3:E19, quand Fr est sélectionné; F3:H19 lorsque En est sélectionné en B3, I3:K19 pour le De ou L3:N19 quand c'est Sp qui est choisi. C'est une de ces 4 plages qui sera la table_matrice dans la RECHERCHEV. La valeur_cherchée le sera dans la première colonne de cette plage et le résultat à renvoyer ne pourra forcément se trouver qu'en colonne 2 ou en colonne 3

... Tu me suis? :)
 

Hub

XLDnaute Occasionnel
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonsoir le fil et tout le monde.

Modeste, Gééééééénial ça marche !!!
Merci pour les explications.
Ben mon cochon, pour pondre une solution pareil, il faut être balaise ahahahah

@+
 

Hub

XLDnaute Occasionnel
Re : VBA - comment réaliser l'équivalent de la fonction RECHERCHE ?

Bonjour au fil et à tous,

Je viens d'ouvrir une nouvelle discussions sur le forum rédigée comme ci-dessous.

Vous trouverez ci-joint un fichier réalisé par Mr Boisgonthier. Ce fichier permet d’insérer des images appelées depuis une liste déroulante.
Je souhaiterais le modifier de façon à ce qu’après avoir effacer le contenu de la cellule B2, l’image appelée corresponde au trait de la cellule B2 de la feuille « Photos »
Ma bidouille ne fonctionne pas car je ne sais pas comment on gère les « Shapes » !!!

Si quelqu'un peut éclairer ma lanterne, d'avance merci.
 

Pièces jointes

  • BG - gestion de photo.xls
    128 KB · Affichages: 33

Discussions similaires

Réponses
2
Affichages
113
Réponses
2
Affichages
121

Statistiques des forums

Discussions
312 183
Messages
2 086 005
Membres
103 087
dernier inscrit
sarah.caneri