Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 11/03/2010, 13h57   #1
Membre du Club
 
Inscription : juin 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 113
Points : 50
Points : 50
Par défaut Comment adresser dynamiquement une plage

Bonjour le forum,

Dans la rédaction d’une formule, je bute sur un problème d’écriture.

Contexte (si nécessaire)
Un fichier Excel 2007 comporte 5 feuilles: prod_A ; prod_B, prod_C ; Data et Recherche. Sur les feuilles Prod_A,B et C, une plage est définie dont le nom est respectivement data_A,B et C. Elles contiennent les produits dont le nom commence par A, B ou C. Chaque plage a deux colonnes : colonne A = nom du produit, colonne B = prix.
Dans la feuille Recherche, pour retrouver le prix d’un produit, je souhaite utiliser une fonction RechercheV. Si j’écris par exemple .
Code :
RECHERCHEV(D13;data_c;2)
, D13 contenant le nom du produit, l’information souhaitée est retrouvée.

Problème
Mais si je généralise le raisonnement :
Code :
RECHERCHEV(D13;"data_"&GAUCHE(D13;1);2)
, le résultat donne un message d’erreur #VALEUR# ; l’évaluation de la formule donne : RECHERCHEV(« Conducteur » ; »data_C » ;2). Voir image Exemple 1
Même erreur si je donne les références explicites
Code :
RECHERCHEV(D13;"'"&GAUCHE(D13;1)&"'!"&A1:B20;2)
; voir image Exemple 2
Un expert Excel pourrait-il me conseiller sur l’écriture de la formule.

D’avance merci

Harry

Dernière modification par Harry Covair ; 15/05/2010 à 09h49.
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 15h35   #2
Membre Expert
 
Avatar de Daranc
 
Inscription : janvier 2007
Messages : 1 015
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 1 015
Points : 1 060
Points : 1 060
Code :
RECHERCHEV(D13;"data_"&GAUCHE(D13;1);2)
ne me parait pas très orthodoxe
un essai avec indirect serait plus conforme
Code :
RECHERCHEV(D13;indirect("data_"&GAUCHE(D13;1));2
)
je n'ai pas tester mais ça me parait plus "intègre"
seulement sur Excel on peut tolérer intégrisme
__________________
Cordialement
Daranc
Daranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 15h39   #3
Membre Expert
 
Avatar de Daranc
 
Inscription : janvier 2007
Messages : 1 015
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 1 015
Points : 1 060
Points : 1 060
en plus la fonction rechercheV (valeur, tablo,colonne , faux)
FAUX: le gag de Microsoft il faut mettre faux pour que ce soit vrai . (valeur approchée faux en fait, ce qui sous-entend:" valeur exacte" )
__________________
Cordialement
Daranc
Daranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 16h06   #4
Membre du Club
 
Inscription : juin 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 113
Points : 50
Points : 50
Belle réponse directe avec "INDIRECT". Voici ma formule complète:
Code :
VLOOKUP(INDIRECT("data"&"!"&"A"&$B$1);INDIRECT("data_"&LEFT(INDIRECT("'"&"data"&"'!"&"A"&$B$1);1));2)
Merci

Harry
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 17h26.


 
 
 
 
Partenaires

Hébergement Web