RechercheV : variables pour l'argument "table matrice"
Bonjour à tous!
J'ai un petit problème avec la fonction RechercheV: je souhaiterais utiliser des variables dans le second argument "table matrice" (qui est une plage de cellules). Par exemple rechercher dans le fichier "Données_N.xls", avec N = variable représentant une année (par exemple 2010, 2011...).
Pour moi l'idéal serait de pouvoir faire en sorte de passer comme second argument une chaine de caractères (je sais sans problème la générer), mais ce n'est pas le type attendu par la fonction RechercheV. J'ai aussi essayé de bidouiller pour avoir une chaine de caractères correspondant à l'appel de la fonction et de tous ses arguments, mais je ne peux rien en faire (ça reste du texte et ça ne "s'exécute" pas...)
J'ai aussi cherché des moyens de contourner le problème, notamment en utilisant la fonction Indirect : ça marche, mais seulement dans une certaine mesure : déjà, il faut que le classeur appelé par Indirect soit ouvert, sinon ça ne marche pas. Ensuite, le classeur appelé par Indirect doit être "fixe" par rapport à celui qui fait la RechercheV : on ne peut pas utiliser de chemin d'accès relatif, alors que j'en ai besoin car mes fichiers Données_N.xls sont chacun dans un répertoire N différent.
Après de nouvelles recherches, j'ai trouvé la fonction Indirect.ext, qui permet de résoudre tous mes problèmes, mais en crée un nouveau : elle fait beaucoup ramer mes fichiers voire ne parvient pas à calculer mes formules lorsqu'elles sont trop nombreuses, même si je l'utilise en "non volatile" et en mode "session".
Donc je ne sais pas si j'ai fait fausse route et qu'il y a un autre moyen d'utiliser la RechercheV permettant d'utiliser des chemins d'accès relatifs ET des variables pour son second paramètre?
Une autre petite question annexe, comment faire pour récupérer une plage de cellules fixe dans un autre fichier, et la stocker dans le fichier appelant? Le but est de ne pas passer 50 fois une même plage de cellules d'un autre fichier en second argument (mais je ne sais pas si ça fait une réelle différence?).
Merci d'avance pour vos réponses en tout cas !
A bientot,
Cédric
bonjour
au hasard ; sans pieces jointe......
essaye la fonction sommeprod (( condition 1)*( condition2)*(condition3) * ( plage ou est sensé etre le resultat)
pour le2eme point
la fonction: adresse(
c'est deja mieux que 0 reponse
bonnne apres midi
Bonjour et merci pour la réponse !
Je ne peux pas uploader de pièces jointes car tout est filtré là où je bosse... je conçois que c est pas évident de voir ce que je veux dire sans fichier exemple, même si j'essaie d'expliquer le mieux possible!
En gros je voudrais utiliser une formule du genre :
=RechercheV(Identifiant;"'..\" & AnnéeN & "\[Données " & "AnnéeN & ".xls]" & FeuilleX & "!'$A$5:$E$50";ColonneY;0)
donc ca revient par exemple à retourner les infos adéquates de la Yème colonne de la plage A$5:$E$50 de la feuille FeuilleX du fichier Données 2011.xls qui est dans le dossier 2011.
la fonction Adresse ne convient pas car sauf erreur de ma part, elle ne renvoie qu'une référence vers une seule cellule (alors qu il faudrait une plage de cellules)
la fonction SommeProd non plus a priori, je ne vois pas trop quoi en faire à vrai dire... enfin si mais au final je vais laisser tomber ce point là car pas beaucoup plus pratique puisque je serai amené à piocher des données dans plusieurs matrices différentes et je ne vais pas m'amuser à toutes les recopier!
En fait je viens aussi de réaliser que j'utilisais la fonction Somme.si qui ne marche pas si le classeur appelé est fermé, même si je fais référence aux plages de cellules via la fonction Indirect.ext ! Et apparemment il n y a pas d'équivalent à Somme.si qui marcherait avec des classeurs fermés... ?
Merci encore de m'avoir lu et tenté de trouver une réponse !