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

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

Votre réponse

8 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
vendredi 29 décembre 2006
Dernière intervention
15 février 2007
3
Merci
Merci à tous...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 90 internautes nous ont dit merci ce mois-ci

Commenter la réponse de SHUN2007
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
22
0
Merci
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
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
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
Messages postés
6
Date d'inscription
vendredi 29 décembre 2006
Dernière intervention
15 février 2007
0
Merci
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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
0
Merci
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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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.