Nommer et un tableau et l'utiliser dans une formule. [Résolu]

SHUN2007 6 Messages postés vendredi 29 décembre 2006Date d'inscription 15 février 2007 Dernière intervention - 23 janv. 2007 à 14:41 - Dernière réponse : SHUN2007 6 Messages postés vendredi 29 décembre 2006Date d'inscription 15 février 2007 Dernière intervention
- 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...
Afficher la suite 

Votre réponse

8 réponses

SHUN2007 6 Messages postés vendredi 29 décembre 2006Date d'inscription 15 février 2007 Dernière intervention - 24 janv. 2007 à 11:00
+3
Utile
Merci à tous...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SHUN2007
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 23 janv. 2007 à 14:51
0
Utile
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
Commenter la réponse de jmfmarques
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 23 janv. 2007 à 15:48
0
Utile
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 #
Commenter la réponse de cs_casy
SHUN2007 6 Messages postés vendredi 29 décembre 2006Date d'inscription 15 février 2007 Dernière intervention - 23 janv. 2007 à 15:52
0
Utile
C'est le nom anglais de la formule... Si ton excel est configuré en Francais essaye avec:

=RechercheV(A1;letableau;3;0)
Commenter la réponse de SHUN2007
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 23 janv. 2007 à 17:47
0
Utile
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
Commenter la réponse de Molenn
cs_MPi 3864 Messages postés mardi 19 mars 2002Date d'inscription 22 mai 2018 Dernière intervention - 23 janv. 2007 à 23:22
0
Utile
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
Commenter la réponse de cs_MPi
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 24 janv. 2007 à 09:11
0
Utile
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
Commenter la réponse de Molenn
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 24 janv. 2007 à 10:19
0
Utile
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
Commenter la réponse de Molenn

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.