Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Formule faisant appel à d'autres classeurs

  • Initiateur de la discussion Initiateur de la discussion nauj
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nauj

XLDnaute Junior
Bonsoir Forum,
Je cale sur un problème qui - à première vue - me paraissait simple à traiter 😕
J'ai crée une feuille de consolidation (cf. fichier attaché) qui fait appel à deux autres fichiers (dans un même répertoire).
La formule utilisée est relativement classique de type Index - Equiv et fonctionne parfaitement.
En revanche, ce fichier de consolidation sera distribué à plusieurs personnes, du coup, au lieu de réécrire la formule à plusieurs reprises en renommant à chaque fois le "chemin\ répertoire\fichiers" , je voulais mettre en place - dans un onglet paramètres - des plages nommées (Chemin, Classeur, Onglet, Cellule) qui font référence à ces informations.
Lorsque j'essaie de réécrire la formule en faisant appel à ces plages nommées, elle ne fonctionne pas...
Je suis preneur de toute idée, suggestion, proposition qu'elles soient de type formule ou vba.
Merci d'avance à tous ceux s’intéresseront à mon sujet
Cdt
 

Pièces jointes

Dernière édition:
Re : Formule faisant appel à d'autres classeurs

Bonjour
Utilise la fonction indirect (attention elle ne fonctionne que si les classeurs externes sont ouverts) pour construire ta formule en mettant le chemin dans une cellule. Si le chemin comporte des espaces, encadre le d'une simple coche ' en plus de la double nécessaire.

Attention à ce que le nom des chemins ne soit pas trop long...
 
Re : Formule faisant appel à d'autres classeurs

Bonjour Misange, Forum,
Effectivement, j'avais pensé à la fonction Indirect() mais le fait qu'elle ne fonctionne que lorsque les autres fichiers à consolider soient ouverts est une vraie contrainte !
J'ai laissé donc tomber cette piste...
Cdt
 
Re : Formule faisant appel à d'autres classeurs

Mais je pense que c'est hélas la seule piste. D'autres auront peut être une autre idée mais le problème est assez classique...
Si tu es prêt à installer morefunc de Laurent Longre sur les PC devant utiliser ton appli, tu peux alors utiliser indirectext qui fonctionne avec des classeurs fermés.
 
Re : Formule faisant appel à d'autres classeurs

Bonjour,

Un exemple d'écriture dynamique de formule en PJ

JB
 

Pièces jointes

Re : Formule faisant appel à d'autres classeurs

Boisgontier, Forum,
Je n'ai pas encore testé mais à priori, ça devrait fonctionner !
En revanche, je n'ai pas la moindre idée de comment écrire une formule Excel de type Index (Equiv() ) en vba...
 
Re : Formule faisant appel à d'autres classeurs

Bonjour Jacques, Nauj
Effectivement par macro en inscrivant le chemin dans une cellule c'est une bonne idée.
pour index equiv (sur une seule ligne)
Code:
Application.WorksheetFunction.Index(Range("champcontenantlavaleurarenvoyer"), Application.WorksheetFunction.Match(cequetucherches, Range("outucherches"), 0))
 
Re : Formule faisant appel à d'autres classeurs

Voir pj

Code:
   Range(ChampFormule).Formula = _
        "=INDEX('" & chemin & "\" & fichier & "'!" & NomTableIndex & ",MATCH(B2,'" & _
           chemin & "\" & fichier & "'!" & NomTableEquiv & ",FALSE))"

Pour transformer les formules en valeur, ajouter:

Code:
    Range(champFormule) = Range(champFormule).Value

JB
 

Pièces jointes

Dernière édition:
Re : Formule faisant appel à d'autres classeurs

Tu as le choix en fait Nauj :
avec la soluce de jacques, tu écris la formule dans la feuille. Du coup elle se met à jour quand tu ouvres le classeur.
Ou bien tu fais le calcul dans la macro et tu places le résultat seulement dans la feuille.Tu peux soit mettre un bouton dans la feuille pour lancer la macro soit la mettre dans une macro événementielle qui se déclenche quand tu changes par exemple le contenu d'une cellule dans la feuille.
L'avantage de la première soluce c'est que tu restes proche de ton classeur de départ
l'avantage de la seconde c'est que si tu as beaucoup de données à récupérer, tu auras un classeur beaucoup plus rapide et léger. A toi de voir.
 
Re : Formule faisant appel à d'autres classeurs

Misange, Boisgontier, Forum,
A nouveau un grand merci pour votre double contribution !
Je vais tester tout cela ce soir au calme et reviendrai vers vous.
A très bientôt
 
Re : Formule faisant appel à d'autres classeurs

Bonjour Forum, Boisgontier, Misange,
Après avoir essayé hier de mettre en application vos conseils, je ne peux que constater mon échec 🙁
Les formules de calcul dans le tableau sont opérationnelles mais le code vba rajouté sur la feuille conso du fichier ci-attaché ne fonctionne pas... Je n'arrive pas à voir le line existant entre les formules écrites en dur sur et ce code... De plus, mes faibles connaissances en vba ne me permettent pas d'y apporter une solution seul.
Pour ceux qui seraient intéressés par mon sujet, je reste bien entendu preneur de toute idée d'amélioration.
Merci d'avance
 

Pièces jointes

Re : Formule faisant appel à d'autres classeurs

Bonjour Boisgontier, Forum,
Ça fonctionne !
Merci encore pour le temps que tu as bien voulu consacrer à mon sujet.
Ce fil peut être considéré comme fermé.
A bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…