Importer une donnée d'un fichier fermé

Bonjour à tous,

Mon problème est simple mais je n'ai pas trouvé de solutions adaptées dans les autres postes 😕

Je renseigne l'adresse d'un fichier dans une cellule (exemple c:/mes documents/donnée 2018.xls) et dans la cellule d'à côté, il m'importe le contenu d'une cellule (par exemple C4) de ce fichier.

Voilà...

Merci d'avance.

Bonjour et bienvenue,

si le fichier est fermé, la méthode INDIRECT ne fonctionne pas

il faut donc par VBA créer la fonction à chaque fois que la valeur du chemin change

Un exemple de macro ici : https://forum.excel-pratique.com/viewtopic.php?p=701926#p701926

avec

.FormulaLocal = "='" & [B1] & "[" & [B2] & "]" & [B3] & "'!" & c.Value

B1 : contient le chemin

B2 : le fichier

B3 : l'onglet

et c.Value contient l'adresse, exemple C4

Bonjour Coccinelle,

ce lien t'aidera peut-être :

https://www.commentcamarche.net/faq/32961-vba-excel-lire-dans-un-classeur-ferme

dhany

Bonjour Dhany,

cela me paraît bien compliqué !

en plus il s'agit pour moi d'importer des valeurs et non comme demandé de faire un lien par formule avec un fichier fermé

Bonjour Steelson,

j'ai proposé le lien par rapport au titre de l'article : « Lire dans un classeur fermé »

en plus, il est indiqué une méthode sans connexion OLE DB.

dhany

en plus, il est indiqué une méthode sans connexion OLE DB.

ah ! pas vu ...

et c'est quoi OLE DB ?

OLE = Object Linking and Embeding : liaison et incorporation d'objet

DB = Data Base : base de données

plus d'infos ici : https://fr.wikipedia.org/wiki/Object_Linking_and_Embedding

dhany

ok merci pour cette info

et ma proposition, c'est de l'OLE machin chose ?

mais pour le post en question, il est marqué où que la coccinelle66 n'embarque pas de trucmuche dans son fichier ?

53

et ma proposition, c'est de l'OLE machin chose ?

si ta proposition est une liaison et incorporation d'un objet machin chose, alors oui, sans doute !

il est marqué où que la coccinelle66 n'embarque pas de trucmuche dans son fichier ?

késako, trucmuche ? OLE machin chose aussi ? moi pas bien comprendre langage schtroumpf !

dhany

Il est indiqué où que c'est une méthode sans connexion OLE DB.?

Merci à tous pour vos réponses. Je vais essayer de me lancer dans la macro proposée, bien que je voulais éviter l'utilisation de macro.

Quand je tape dans une cellule =`c:\ mes documents\[donnees 2018.xls]Feuil1'!$b$4 ça marche. Mais c'est vraiment fastidieux de rentrer manuellement la formule d'autant qu'une cellule contient déjà l'adresse. (c:\mes documents\donnees 2018.xls)

Naïvement, je pensais pouvoir construire une formule par concaténation de l'adresse et de la cellule pour aller extraire automatiquement le contenu de la cellule sans passer par une macro.

@Steelson

tu a écrit :

Il est indiqué où que c'est une méthode sans connexion OLE DB.?

screen

dhany

je pense que c'est ce que j'ai fait donc ... il ne s'agit que de la lecture du contenu du fichier fermé

Je vais essayer de me lancer dans la macro proposée, bien que je voulais éviter l'utilisation de macro.

Quand je tape dans une cellule =`c:\ mes documents\[donnees 2018.xls]Feuil1'!$b$4 ça marche. Mais c'est vraiment fastidieux de rentrer manuellement la formule d'autant qu'une cellule contient déjà l'adresse. (c:\mes documents\donnees 2018.xls)

utilise pour cela la procédure :

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Naïvement, je pensais pouvoir construire une formule par concaténation de l'adresse et de la cellule pour aller extraire automatiquement le contenu de la cellule sans passer par une macro.

moi aussi je trouve cela curieux qu'on ne puisse pas faire de cette façon !

@Coccinelle

tu a écrit :

Mais c'est vraiment fastidieux de rentrer manuellement la formule d'autant qu'une cellule contient déjà l'adresse. (c:\mes documents\donnees 2018.xls)

mettons que cette cellule est par exemple A1 ; tu as donc en A1 : C:\Mes documents\donnees 2018.xls

essaye cette formule : =INDIRECT(SUBSTITUE(A1;"documents\";"documents\[") & "]Feuil1'!$B$4")

dhany

Dhany,

cela ne fonctionne pas si le fichier est fermé !

c'est tout l'objet du post depuis le début ...

la solution est de construire la formule en VBA avec FormulaLocal ou Formula R1C1 par une procédure événementielle

ah oui, j'oubliais qu'le classeur est fermé !

bonjour à tous

on lit les données, on ne les "importe" pas

solutions pour récupérer des données d'un fichier fermé sans VBA :

  • des simples " = " ou liens entre fichiers. Je me simplifie la vie en créant un onglet plein de = qui pointent vers un onglet du fichier fermé.
  • SOMMEPROD(). Un peu complexe mais moins que VBA
  • Power Query (à télécharger gratuitement si version Excel 2010 ou 2013).

les actualisations nécessitent un petit clic

amitiés

Rechercher des sujets similaires à "importer donnee fichier ferme"