Nom de fichier en variable dans un appel de cellule?

Kilauhea -  
 Kilauhea -
Bonjour,

Je cherche à appeler des valeurs et des chaines de textes dans plusieurs fichiers assez similaires.
(ce sont des factures, je voudrai récupérer les references, montants HT et TVA etc. pour faire un bilan...).
Je sais pointer des cellules une par une en ouvrant les fichiers mais c'est long et rébarbatif.
Je me demandais si il existait une façon de mettre un nom de fichier en variable

exemple idéal :
je colle le nom de fichier dans une cellule L8 : "monfichieraimporter.xls'
et pour récupérer mes valeurs je tape...
= (L8)!totalHT (pour la cellule "totalHT)
= (L8)!reference (pour la reference) etc.
sauf que bien sur les parenthèses ne sont pas une syntaxe correcte
j'imagine qu'il y a une fonction pour cela?... et je ne trouve pas :(

bref si vous connaissez la syntaxe et/ou que vous avez une méthode pour récupérer des données répétitives dans une liste de fichiers, je vous serai reconnaissant

merci de votre attention
François

1 réponse

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Si dans une cellule A2 tu as l'adresse complète :'monfichier'!reference, tu peux y faire référence dans une autre cellule avec INDIRECT(A2)

    ou si tu veux recomposer l'adresse :
    en A2 le nom sans les ' : monfichier
    dans l'autre cellule : = INDIRECT("'" & A2 &"'!reference")

    Cdlmnt
    "L'imagination est plus importante que le savoir." A. Einstein
    0
    1. Kilauhea
       
      justement l'adresse est en partie issus d'un nom de fichier (en variable) et en partie saisie...
      l'idéal étant d'aller chercher des données ayant le même nom dans plusieurs fichiers excell

      de type
      'fichier1.xls'!reference
      'fichier1.xls"!montantHT
      "fichier1.xls'!montantTTC
      puis...
      'fichier2.xls'!reference
      'fichier2.xls"!montantHT
      "fichier2.xls'!montantTTC
      etc.
      donc je me disais que mettre le nom de fichier dans une cellule (ici L8 contenant 'fichier1.xls')
      permettrait de faire des appels répétitifs... L8!reference puis L8!montantHT etc.
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Oui c'est ce que j'ai rajouté dans mon premier post, tu peux recomposer l'adresse
      en L8 tu mets fichier1.xls mais sans les ' (on les mettra dans la formule INDIRECT sinon ça ne marche pas)

      Dans l'autre cellule tu mets INDIRECT("'" & L8 & "'!reference") une première ' entre les 2 premiers guillemets, l'autre ' avant le !

      Cdlmnt
      0