RechercheV : Plage dans une cellule nommée

CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je travaille sur un fichier qui récupère en grande partie ses données grâce à des recherches V.
Mon problème réside dans le fait que la plage source des données est changeante ( le nom du classeur source peut être modifié)

Je souhaitais donc mettre le chemin et la plage du classeur source dans une cellule nommée,

de manière à modifier uniquement une cellule.

Malheureusement ça ne fonctionne pas

Auriez vous une explication ?

Par avance merci

2 réponses

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

Pour faire ce que tu souhaites, je te conseilles d'utiliser la fonction indirect.


Pour cela voici ce que tu fais :
tu mets par eexemple l'adresse de ton fichier dans une cellule, tu mets dans une autre ta cellule de début et dans une 3 ème ta cellule de fin

et tu mets ta formule recherchev (attention mon excel est an anglais) :
=VLOOKUP(A1,INDIRECT("["&H5&"]Sheet1!"&I5&":"&J5,TRUE),2,FALSE)

voici un exemple :
https://www.cjoint.com/c/FFkslDSL2s0
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Melanie1324,

Merci de ta réponse, malheureusement je ne parviens pas à la mettre en œuvre.

Dans mon Classeur, j'ai un onglet "Mois" dans lequel j'ai indiqué les élément de la fonction indirect:

Nom du fichier avec le chemin en I25 :

D:\DFC\CDK\BBB\2016\Frais Pers\[Classeur 1.xlsm]3.9 onglet

Puis en I26

B5

Puis en I27

IU590

Le classeur comporte une trentaine d onglets sur le même format.
Ça va rechercher ( Recherche V ) des données dans un classeur rafraichit par un outil de l entreprise.

Le problème c'est que l'outil d entreprise est très instable et donc nous sommes obligés de modifier le fichier source, donc remplacer les liens dans le cible (Cela provoque des erreur)

C'est pourquoi j'aimerais tout réunir sur un onglet de paramétrage des liens.

Je pense avoir compris la méthode indirecte mais j'ai un message d'erreur REF.

Merci de ton aide
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Si le classeur dans lequel tu effectues la recherche est ouvert, tu n'as pas besoin de préciser le chemin et tu peux alors utiliser la fonction INDIRECT.

Par contre, si le classeur est fermé, tu ne peux pas utiliser la fonction INDIRECT. Il faut alors regarder du coté de INDIRECT.EXT

A+
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour

merci de l'info, je regarde et je vous tiens au courant
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Je viens d'essayer

j'ai une erreur nom
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
 
Qu'as-tu essayé au juste ?

A+
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1 > Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

j'ai essayé ça :

RECHERCHEV(C9;INDIRECT.EXT("["&H2&"]Direction!"&H3&":"&H4;VRAI);2;FAUX)

En H2

'E:\DF\CD\BF\2016\Frais\[Classeur.xlsm]3.6 Det yc trans!

En H3

B5

En H4
IU590

Cdt
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
 
Si je t'ai bien compris, tu souhaites utiliser FONCTION PERSONNELLE qui permette une RECHERCHEV dans un fichier FERME et incluant une fonction INDIRECT.

Tu peux tester cette méthode développée par SilkyRoad
https://excel.developpez.com/faq/?page=Recherche#RechercheWbFermeIndir
(pour info, je ne suis pas parvenu à la mettre en oeuvre avec Excel 2013).

Sinon, tu peux utiliser une macro qui va placer la formule de recherche en A1 avec les paramètres ci-dessous :
Valeur cherchée en H1 : $C$9
Chemin en H2 : E:\DF\CD\BF\2016\Frais\
Classeur en H3 : Classeur1.xlsx
Feuille en H4 : Direction
Plage en H5 : $D$9:$E$16
Sub RECHERCHER()
Dim ValeurCherchée As String, Chemin As String, Classeur As String, Feuille As String
Dim Plage As String, Formule As String, V As String
ValeurCherchée = Range("H1").Value
Chemin = Range("H2").Value
Classeur = Range("H3").Value
Feuille = Range("H4").Value
Plage = Range("H5").Value
ActiveSheet.Range("A1").ClearContents
ActiveSheet.Range("A1").Formula = "=VLOOKUP(" & ValeurCherchée & ",'" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & Plage & ",2,FALSE)"
End Sub


A+
0