XL 2019 [Résolu] Extraire contenu d'une cellule d'un classeur fermé en VBA

Fredox

XLDnaute Occasionnel
Bonjour,

Je souhaites récupérer le contenu d'une cellule d'un classeur fermé

Le fichier
cible = Application.GetOpenFilename("Fichiers Excel ,*.xlsm", , "Selectionnez votre fichier à importer")

Je souhaite avoir le contenu de la cellule A1, Feuille 1

Un coup de main ?
Merci
 

Jacky67

XLDnaute Barbatruc
Bonjour,

Je souhaites récupérer le contenu d'une cellule d'un classeur fermé

Le fichier
cible = Application.GetOpenFilename("Fichiers Excel ,*.xlsm", , "Selectionnez votre fichier à importer")

Je souhaite avoir le contenu de la cellule A1, Feuille 1

Un coup de main ?
Merci
Bonjour,
Une proposition sans ouvrir le classeur
-Ouvrir les deux classeurs
-dans le classeur cible
-Sélectionner la cellule cible
-Mettre =, puis sélectionner le classeur source et la feuille source puis la cellule source
-Valider
-Fermer le classeur source
Cela devrait faire
 

Jacky67

XLDnaute Barbatruc
En fait le plus dur pour moi est qu'après avoir déclaré la variable "cible" qui est un chemin d'accès + nom de fichier (ex: C:\Data\fichier.xlsx), je n'arrive pas a déclarer mon Workbook
Set Wb_data = workbook(cible)

Merci
Re..
Dans la procédure que j'ai indiquée, il n'y a nul besoin de déclaration, il n'y a pas de vba.
Exemple de la formule les deux classeurs ouvert (pour la construction de la formule)
=[NomDuClasseurSource]Feuil1!$A$1
Exemple que donnera(automatiquement) la formule le classeur source fermé
='D:\Mes documents\[NomDuClasseurSource]Feuil1'!$A$1
Le tout dans la cellule du classeur cible
 
Dernière édition:

Fredox

XLDnaute Occasionnel
Re..
Dans la procédure que j'ai indiquée, il n'y a nul besoin de déclaration, il n'y a pas de vba.
Exemple de la formule les deux classeurs ouvert (pour la construction de la formule)
=[NomDuClasseurSource]Feuil1!$A$1
Exemple que donnera(automatiquement) la formule le classeur source fermé
='D:\Mes documents\[NomDuClasseurSource]Feuil1'!$A$1
Le tout dans la cellule du classeur cible
Bonjour Jacky,

Pourquoi m'expliquer comment faire autrement ?
Je le fais en VBA parce-que c'est une opération a faire sur plusieurs fichiers comportant plusieurs feuilles.
J'ai un point bloquant c'est celui de travailler sur un fichier fermé, aujourd'hui ça marche très bien mais sur des classeur que j'ouvre.
Merci
 

job75

XLDnaute Barbatruc
Bonjour Jacky67, Fredox, le forum,

Utilisez ExecuteExcel4Macro qui nécessite une formule de liaison en notation R1C1 :
VB:
Sub Importer()
Dim feuille$, cible As Variant, chemin$, fichier$
feuille = "Feuil1"
cible = Application.GetOpenFilename("Fichiers Excel ,*.xlsm", , "Selectionnez votre fichier à importer")
If cible = False Then Exit Sub
chemin = Left(cible, InStrRev(cible, Application.PathSeparator))
fichier = Mid(cible, Len(chemin) + 1)
[C3] = ExecuteExcel4Macro("'" & chemin & "[" & fichier & "]" & feuille & "'!R1C1")
End Sub
Fonctionne sur Windows ou sur MAC.

A+
 

Pièces jointes

  • Import(1).xlsm
    15.9 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
bonsoir
selon la cellule ;comme il faut référencer la cellule en xlR1C1
ce qui n'est pas pratique ;)
tu peux faire la conversion avec address
exemple ici on récupère la cellule A1 du fichier fermé
changer l'adresse "A1" pour celle désirée
VB:
Sub Importer()
Dim feuille$, cible As Variant, chemin$, fichier$
feuille = "Feuil1"
cible = Application.GetOpenFilename("Fichiers Excel ,*.xlsm", , "Selectionnez votre fichier à importer")
If cible = False Then Exit Sub
chemin = Left(cible, InStrRev(cible, Application.PathSeparator))
fichier = Mid(cible, Len(chemin) + 1)
[C3] = ExecuteExcel4Macro("'" & chemin & "[" & fichier & "]" & feuille & "'!"&[A1].address(,,xlr1c1))
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 180
dernier inscrit
Vcr