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

Comment lire dans un fichier ??

  • Initiateur de la discussion Marcooo
  • Date de début
M

Marcooo

Guest
Bonjour à tous,

Peut-être quelqu'un saura me résoudre mon problème.

En fait, je cherche simplement à mettre dans une case la valeur d'une cellule d'un autre fichier. Commande type :


=[DATA1.xls]Sheet1!$A$1

La particularité, c'est qu'au lieu de le taper explicitement le nom du fichier (DATA1.xls), je voudrais qu'Excel aille le chercher dans une cellule qui contient le nom du fichier SOUS FORMAT TEXTE.

Le but de l'opération est d'avoir un contrôle dans une cellule du nom du fichier qu'il faut aller chercher.

Quelqu'un peut-il me sauver ?

Merci d'avance

Marco
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Marco, Tcho

Tu pourras t'inspirer de cette démo, pour écrire par VBA des Formules en Dûres...

Lien supprimé

Ici il y a une variable 'An' pour les Feuilles, mais le principe serait le même pour des chemins et noms de fichiers... (J'ai aidé sur un truc comme çà, mais plus le temps de trouver)

Bonne Journée
@+Thierry
 
M

Marcoo

Guest
Merci Thierry,

Je vais y jeter une couille

Mais le truc, c'est que je voudrais le faire via une formule, et non par une macro. Je sais, je suis difficile, mais c'est dans un soucis de commodité.

...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Marco, Tcho, Bonjour Pascal, le Forum

Je ne suis pas spécialiste de Formule, mais Indirect, utilisé avec ta syntax, Pascal, ça fonctionne, mais uniquement si le Fichier en 'Link' est Ouvert...

J'ai essayé différents trucs :
= INDIRECT(''C:\\MesDocuments\\[' &B1& ']Sheet1!$A$1')

ou Encore (A2 contenant le Path)
=CONCATENATE('=''&A2&(INDIRECT('['&B2&']Sheet1!A1')))

Enfin je vous passe mes exemples qui n'ont aboutis à rien !! LOL mais je précise je ne suis absolument pas 'Formuliste'

Sinon En VBA, pour peu que tu aies les renseignements adéquates en Cellule 'A1'/'B1'/'C1'/'D1' ça donne çà :
Code:
Sub LinkBuilder()
Dim CellPath As String
Dim CellFile As String
Dim CellSheet As String
Dim CellRange As String
Dim TheCompletePath As String

    CellPath = Range('A1')  'Chemin  EG 'C:\\Mes Documents\\'
    CellFile = Range('B1')  'Fichier EG 'MonTest.xls'
    CellSheet = Range('C1') 'Feuille EG 'Feuil1'
    CellRange = Range('D1') 'Cellule EG 'A1'

TheCompletePath = ''' & CellPath & '[' & CellFile & ']' & CellSheet & ''!' & CellRange

ActiveCell.Formula = '=' & TheCompletePath

End Sub

Voilà, par contre Marco, je te conseille gentillement de maîtriser un petit peu les mots que tu emploies dans ce Forum, on est pas dans un Tchat ou je ne sais quelle foire.

Tu as notre Charte qui devrait t'aider à être un peu plus 'XLD-Compliant', merci d'avance.

Bonne Journée
@+Thierry
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

exact Thierry il faut que le fichier soit ouvert

Voici ce que dit l'aide :

Si l'argument réf_texte fait référence à un autre classeur (une référence externe), ce dernier doit être ouvert. Si le classeur auxiliaire ne l'est pas, la fonction INDIRECT renvoie la valeur d'erreur #REF!

Toutes mes excuses
 

Discussions similaires

Réponses
16
Affichages
466
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…