XL 2016 Récupérer donnée d'une cellule d'un autre fichier sans l'ouvrir

D10

XLDnaute Junior
Bonjour,

J'ai besoin de votre aide. :)

J'ai un dossier dans lequel il y a environ 300 fichiers Excel, qui sont tous identiques à part les données qui sont dans chacun d'entre eux.
Mon but centraliser dans un seul fichier les données d'une cellule précise de ces fichiers.

Je souhaite créer un fichier excel dans lequel je veux:
Colonne A: liste des noms des fichiers. (Exemple1.xls, Exemple2.xls,....)
Colonne B: Récupérer (sans ouvrir les fichiers bien sur) pour chacun de ces fichiers listés en A, la donnée qui est dans une cellule précise par exemple K5.

Avez-vous une idée ? un code ? une formule ?

Merci d'avance!

D10
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir D10,
Un vieux code qui était dans mes archives :
VB:
Sub LireFichierFermé()
Dim Fichiersource As String
Dim Cheminsource As String
Dim Formule As String
  Cheminsource = "I:\G_AMEC\ETAT AMEC2\Etat AMEC 2 \"
  Fichiersource = "Etat AMEC 2 (version 2).xlsm"
  Formule = "='" & Cheminsource & "[" & Fichiersource & "]calculs'!H9"
  With Worksheets("RECAP").Range("F49")
    .Value = Formule
    .Value = .Value
  End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
bonsoir
bon d'accords on sort les archives ;)
@sylvanu sans passer par la mise en place de la formule puis conversion en value
directement en .value dans destination
VB:
   Dim Fichiersource As String
    Dim Cheminsource As String
    'Dim Formule As String
    Dim Arg As String
    Cheminsource = "I:\G_AMEC\ETAT AMEC2\Etat AMEC 2 \"
    Fichiersource = "Etat AMEC 2 (version 2).xlsm"
    'Formule = "='" & Cheminsource & "[" & Fichiersource & "]calculs'!H9"
        cellule = Range("H9").Address(, , xlR1C1)    'conversion address en R1C1
    'construit l'argumentation
    Arg = "'" & Cheminsource & "[" & Fichiersource & "]calculs'!" & cellule
    With Worksheets("RECAP").Range("F49")
        .Value = Application.ExecuteExcel4Macro(Arg)
        '.Value = Formule
        '.Value = .Value
    End With
End Sub

un autre exemple encore plus ancien

cette fois ci c'est une fonction

VB:
Sub test()
    Dim chemin$, fichier$, feuille$, cellule As Range
    chemin = "C:\Users\polux\Desktop"
    fichier = "hhhhhtml.xls"
    feuille = "Feuil1"
    Set cellule = Range("c4")
    MsgBox GetVal_on_closed_fich(chemin, fichier, feuille, cellule)
End Sub

Function GetVal_on_closed_fich(ByVal chemin As String, ByVal fichier As String, ByVal feuille As String, cel As Range) As String
    Dim Rc$
    Rc = "R" & cel.Row & "C" & cel.Column
    GetVal_on_closed_fich = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]" & feuille & "'!" & Rc)
End Function
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 145
Membres
112 669
dernier inscrit
Guigui2502