[Excel - VBA] Aide sur RechercheV

Résolu
actaris51 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai un petit souci en Excel.

Regardez le classeur ci-joint :

http://www.cijoint.fr/cjlink.php?file=cj201011/cijRrdHC8O.xls

En fait, le probleme vient de ma fonction RechercheV qui n'est pas complète (colonne B de la Sheet1)
Le but est d'aller rechercher dans la feuille 2 les éléments de la collone « provient de » associés à mes noms.
La formule marche bien sauf pour les cas du type de la ligne 5/6 de ma deuxieme feuille.

En fait, la formule doit retourné une valeur qui existe dans ma feuille 1. Par exemple ici : « tata » existe bien, mais pas « tutu ».
Donc je souhaite que ma formule me retourne tata (et non tutu).
Mais ca, je n'y arrive pas.

Pouvez vous m'aider ?

Merci


6 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

VBA = Visual Basic pour Application, c'est un langage de programmation pour les applications de Microsoft Office.

Cette question n'a rien à voir avec le VBA, il s'agit simplement de l'utilisation basique d'Excel.
Si tu veux obtenir une réponse correcte et rapide, évite d'utiliser des mots que tu ne connais pas, reste simple et explicite.

Pour répondre à ta question : Excel n'est pas devin, si quand tu cherches "toto" il retourne "tutu" c'est parce que c'est ce qu'il y a sur la ligne.
La fonction Recherchev permet de trouver des valeurs dans une matrice, c'est à dire des cellules identifiées par des lignes et des colonnes. Il ne faut donc pas fusionner les cellules.
Si tu supprimer la fusion de toutes les cellules, tu va te rendre compte qu'il n'y a aucune information dans la colonne B sur la ligne de "tata"
0
actaris51 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   2
 
OK, je vais essayer d'etre plus explicite.
En fait la solution c'est d'utiliser VBA je pense, et de faire une fonction qui dit, par exemple pour la cellule A2 de la feuille 1 :
-prend le nom sur la feuille 1 (A2), appellons le x
- vas sur la feuille 2, trouve x
- si x est sur la feuille 2:
- Regarde le "provient de" associé au nom sur la feuille 2 (appellons le y)

-Si y se trouve dans la feuille 1,
-alors feuille1!B2 =y
-Sinon regarde la ligne du dessous de la feuille 2, et remplace le y par celui-ci (là en fait l'idéal serait de faire le test uniquement si la celulle de gauche est fusionnée)
-Si y se trouve dans la feuille 1,
-alors feuille1!B2 =y

etc...

Je sais que je suis pas très clair..mais j'espère que vous avez compris :-)

Merci
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Fusionner des cellules est toujours une source d'ennuis, c'est la pire des solutions, pourquoi persister dans l'erreur ?
0
actaris51 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   2
 
Le truc c'est que ca vient d'un export d'un logiciel, et que justement c'est fusionné par défaut.

Mais bon, admettons je défusionne.. et je met dans la feuille 2

toto -- tutu
toto -- tata

comme je lui dis d'aller chercher la valeur qui existe dans la feuille 1 (donc ici tata) ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Remplace
=RECHERCHEV(A2;Sheet2!$B$1:$C$6;2;FAUX)

Par
=INDEX(Sheet2!C:C;EQUIV(A2;Sheet2!B:B;0)+NB.SI(Sheet2!B:B;A2)-1)

Et si tu ne veux pas voir les #NA :
=SI(ESTNA(EQUIV(A2;Sheet2!B:B;0));"";INDEX(Sheet2!C:C;EQUIV(A2;Sheet2!B:B;0)+NB.SI(Sheet2!B:B;A2)-1))

Patrice
0
actaris51 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   2
 
C'est parfait, merci!
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
De rien, met le poste en résolu.
0