Nommer et un tableau et l'utiliser dans une formule.

Résolu
SHUN2007 Messages postés 6 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 février 2007 - 23 janv. 2007 à 14:41
SHUN2007 Messages postés 6 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 février 2007 - 24 janv. 2007 à 11:00
Bonjour à tous,

Je suis entrain de m'arracher les cheveux sur le problème suivant et j'ai besoin d'aide / d'une macro...

Imaginons:
Je fais un vlookup dans une cellule:("letableau" a été nommé auparavant).

=Vlookup(A1;letableau;3;0)

Si on tape le nom du tableau dans la formule, tout va bien.

Maintenant j'aimerai que ce nom s'affiche tout seul dans la formule en fonction d'un lien.

Exemple: en A7 si C2 = 1 alors A7= "letableau" et sinon A7="unautretableau".

par conséquent:

J'aimerai que ma formule soit ainsi:

=Vlookup(A1;A7;3;0)

J'ai essayé une infinité de formules mais mon Vlookup ne marche pas.

Si quelqu'un aurait une macro (ou une formule à me proposer) je lui en serai reconnaisant.

Merci beaucoup...

8 réponses

SHUN2007 Messages postés 6 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 février 2007
24 janv. 2007 à 11:00
Merci à tous...
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 janv. 2007 à 14:51
Je n'ai qu'une idée à te proposer (à condition qu'elle soit applicable à VBA... et je n'en sais rien....) :

un tableau dynamique de tes "tableaux", à initialiser à l'Initialize
Il te restera alors à te référer à l'index de ce tableau dynamique pour invoquer le tableau correspondant
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 janv. 2007 à 15:48
Petite precision, vlookup c'est du Excel

quand je tape vlookup dans l'aide de Excel, ça me renvoit à des rubrique parlant de mise à niveau de Lotus 1-2-3 vers Excel.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
SHUN2007 Messages postés 6 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 février 2007
23 janv. 2007 à 15:52
C'est le nom anglais de la formule... Si ton excel est configuré en Francais essaye avec:

=RechercheV(A1;letableau;3;0)
0

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

Posez votre question
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
23 janv. 2007 à 17:47
Alors, effectivement, RechercheV et VLOOKUP désigne la même chose dans Excel.


Si tu utilises du code VBA pour afficher ta formule, il faudra bien marquer VLOOKUP (un truc du style cell(1,1).FormulaR1C1 ="=VLOOKUP(R[-1]C[1],MonTableau,1,FALSE)" ... la formule quand tu seras dans Excel sera bien marquée comme étant =RECHERCHEV ...)
Donc, avec un code VBA, c'est tout simple à faire :
cell(1,1).FormulaR1C1 ="=VLOOKUP(R[-1]C[1]," & MonTableau & ",1,FALSE)" et la variable MonTableau contient le nom de ta zone de nom, renseignée par un IF ou un Select Case.

Pour ton problème, c'est à dire, le faire en pur EXCEL, tu veux faire : "=Vlookup(A1;A7;3;0)", donc écrire directement la formule EXCEL.
Tu dois donc écrire : =RECHERCHEV(A1;A7;3;0)
Mais ça ne fonctionnera pas parce que ça ne cherchera que dans A7 écrit comme ça, et non dans la zone de nom renseignée dans EXCEL.

Alors, j'ai essayé plein d'astuce, je fondais beaucoup d'espoir sur la formule CELLULE("contenu";A7) qui me remonte bien le nom de la Zone de nom, amis problème, dans la formule :
=RECHERCHEV(A1;CELLULE("contenu";A7);3;0), il interpère le nom de la zone de nom (tu suis ? ^^) comme du texte, et non comme une référence !
J'ai eu beau chercher, impossible ... La formule pour convertir en référence n'existe pas (on pourrait bien entendu en écrire une, mais ça n'a pas d'intérêt, si c'est pour faire du VBA, on peut faire bien simple que ça ^^).
J'en arrive donc à la conclusion que, dans ton cas, tu sois obligé de gérer le nom des tes zones pas des formules SI, en espérant donc que tu n'en aies pas trop.

Par exemple, j'ai 3 zones de nom : test1, test2 et test3
Ta cellule A7 affiche le nom de la zone en fonction de tes critères.

Tu peux donc écrire la formule suivante :
"=SI(A7="test1";RECHERCHEV(A1;test1;2;FAUX);SI(A7="test2";RECHERCHEV(A1;test2;2;FAUX);RECHERCHEV(A1;test3;2;FAUX)))"

Je n'ai pas mieux à te proposer (c'est pas faute d'avoir cherché pourtant )

Molenn
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 janv. 2007 à 23:22
Essaie comme ceci
=RECHERCHEV(A1;INDIRECT(G1);3;FAUX)

En G1, tu inscris le nom de la plage que tu as créée

PS: Molenn, je ne pensais t'avoir sur celle-là... ¦¬)

MPi
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
24 janv. 2007 à 09:11
Ben, sur mon fichier de test, j'ai jamais réussi à faire fonctionner ma cellule avec un INDIRECT, pourtant, j'ai essayé (et comme j'étais convaincu de l'avoir déjà fait, je me suis acharné pourtant !), je n'ai toujours obtenu qu'un #VALEUR.
Mais bon, CELLULE était tellement logique aussi, je hais Grossoft !!

Mais si ça se trouve, c'est mon fichier de test qui était foireux. Rhaaa, faut que je réessaye maintenant !!

Molenn
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
24 janv. 2007 à 10:19
Han la honte, effectivement, avec le INDIRECT ça fontionne ... Et moi, ça ne risquait pas d'être bon : dans mes zones de nom, j'avais fait une faute d'orthographe !! J'ai passé 20 mn avec des formules EXCEL à tester ce que je savais pourtant fonctionner, à tenter d'afficher le contenu d'une zone de nom qui n'était pas définie ... J'ai honte heu, j'ai hoooooonte heu !!!

Molenn
0
Rejoignez-nous