Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lecture plusieurs fichiers

4 réponses
Avatar
Philippe
bonjour

je reçois chaque mois des fichiers excel CENTRE_X,CENTRE_Y, etc..... et j'ai
un fichier RECAP ou sur une feuille j'ai colonne A avec CENTRE_X,CENTRE_Y..
sur des lignes differentes.
Je voudrai récupérer sur la RECAP une donnée qui se trouve sur chaque
fichier en B34 soit sur RECAP
A2ou il y a le nom du centre X B2 =B34 de CENTRE_X
A3 ou il y ale nom du centre Y B3 =B34 de CENTRE_Y
etc... mais cela pour chaque mois. Suis-je assez clair?
Merci

4 réponses

Avatar
michdenis
Bonjour,

Pour utiliser la fonction personnalisée :
Tu peux répéter la ligne de commande aussi souvent
que désiré pour les différentes cellules à extraire...
ou créer une boucle !

L'autre alternative est de saisir en dur ce type de formule
='C:Mes Documents[MonFichier.xls]MaFeuille!A1
dans la cellule que l'on veut obtenir le résultat.

'--------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'--------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------



"Philippe" a écrit dans le message de groupe de discussion :
e#
bonjour

je reçois chaque mois des fichiers excel CENTRE_X,CENTRE_Y, etc..... et j'ai
un fichier RECAP ou sur une feuille j'ai colonne A avec CENTRE_X,CENTRE_Y..
sur des lignes differentes.
Je voudrai récupérer sur la RECAP une donnée qui se trouve sur chaque
fichier en B34 soit sur RECAP
A2ou il y a le nom du centre X B2 ³4 de CENTRE_X
A3 ou il y ale nom du centre Y B3 ³4 de CENTRE_Y
etc... mais cela pour chaque mois. Suis-je assez clair?
Merci
Avatar
Philippe
Bonjour
je ne suis pas grand spécialiste et si vous pouviez me dire ou je dois
mettre la ligne de commande dans l'exemple de fichier
http://www.cijoint.fr/cjlink.php?file=cj201001/cijoRpuS8b.xls

Si je saisis en dur je pense que le fichier source doit etre ouvert
Merci d'avance

"michdenis" a écrit dans le message de news:

Bonjour,

Pour utiliser la fonction personnalisée :
Tu peux répéter la ligne de commande aussi souvent
que désiré pour les différentes cellules à extraire...
ou créer une boucle !

L'autre alternative est de saisir en dur ce type de formule
='C:Mes Documents[MonFichier.xls]MaFeuille!A1
dans la cellule que l'on veut obtenir le résultat.

'--------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'--------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= > ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------



"Philippe" a écrit dans le message de groupe de
discussion :
e#
bonjour

je reçois chaque mois des fichiers excel CENTRE_X,CENTRE_Y, etc..... et
j'ai
un fichier RECAP ou sur une feuille j'ai colonne A avec
CENTRE_X,CENTRE_Y..
sur des lignes differentes.
Je voudrai récupérer sur la RECAP une donnée qui se trouve sur chaque
fichier en B34 soit sur RECAP
A2ou il y a le nom du centre X B2 ³4 de CENTRE_X
A3 ou il y ale nom du centre Y B3 ³4 de CENTRE_Y
etc... mais cela pour chaque mois. Suis-je assez clair?
Merci



Avatar
michdenis
Explication supplémentaire :

La procédure "test" contient 4 paramètres que tu dois
déclarer :
Chemin où se trouve le fichier : "C:UsersDMDocuments"
Nom du fichier où se trouve ton info : "Fichier_Source.xls"
Nom de la feuille : "Feuil1"
Adresse de la cellule où est l'information à extraire : "C5"

En fait, c'est une petite macro que tu dois appeler le moment
venu pour extraire les données que tu veux extraire.
'-------------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'-------------------------------------
Si tu avais plusieurs cellules à extraire dans la même feuille
du même classeur situé dans le même répertoire, tu pourrais
faire une boucle qui ressemblerait à ceci.
Si tu préfères l'option des formules en dur dans les cellules,
tu n'as pas besoin de ces macros.
'-------------------------------------
Sub test()

Dim C as range
With Worksheets("Recap")
For each c in .Range("A1:A5")
c.value = GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", C.address(0,0))
next
End with
End Sub
'-------------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------





"Philippe" a écrit dans le message de groupe de discussion :

Bonjour
je ne suis pas grand spécialiste et si vous pouviez me dire ou je dois
mettre la ligne de commande dans l'exemple de fichier
http://www.cijoint.fr/cjlink.php?file=cj201001/cijoRpuS8b.xls

Si je saisis en dur je pense que le fichier source doit etre ouvert
Merci d'avance

"michdenis" a écrit dans le message de news:

Bonjour,

Pour utiliser la fonction personnalisée :
Tu peux répéter la ligne de commande aussi souvent
que désiré pour les différentes cellules à extraire...
ou créer une boucle !

L'autre alternative est de saisir en dur ce type de formule
='C:Mes Documents[MonFichier.xls]MaFeuille!A1
dans la cellule que l'on veut obtenir le résultat.

'--------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'--------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= > ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------



"Philippe" a écrit dans le message de groupe de
discussion :
e#
bonjour

je reçois chaque mois des fichiers excel CENTRE_X,CENTRE_Y, etc..... et
j'ai
un fichier RECAP ou sur une feuille j'ai colonne A avec
CENTRE_X,CENTRE_Y..
sur des lignes differentes.
Je voudrai récupérer sur la RECAP une donnée qui se trouve sur chaque
fichier en B34 soit sur RECAP
A2ou il y a le nom du centre X B2 ³4 de CENTRE_X
A3 ou il y ale nom du centre Y B3 ³4 de CENTRE_Y
etc... mais cela pour chaque mois. Suis-je assez clair?
Merci



Avatar
Philippe
Bonjour
je tiens d'abord à vous remercier pour tous ces renseignements et votre
gentillesse.
Je ne vois pas comment je peux par la macro aller charger les infos qui sont
dans plusieurs classeurs puisque je dois déclarer les 4 parametres. Je pense
que je vais faire cela en dur mais faut-il obligatoirement ouvrir le
classeur source
Cordialement

"michdenis" a écrit dans le message de news:

Explication supplémentaire :

La procédure "test" contient 4 paramètres que tu dois
déclarer :
Chemin où se trouve le fichier : "C:UsersDMDocuments"
Nom du fichier où se trouve ton info : "Fichier_Source.xls"
Nom de la feuille : "Feuil1"
Adresse de la cellule où est l'information à extraire : "C5"

En fait, c'est une petite macro que tu dois appeler le moment
venu pour extraire les données que tu veux extraire.
'-------------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'-------------------------------------
Si tu avais plusieurs cellules à extraire dans la même feuille
du même classeur situé dans le même répertoire, tu pourrais
faire une boucle qui ressemblerait à ceci.
Si tu préfères l'option des formules en dur dans les cellules,
tu n'as pas besoin de ces macros.
'-------------------------------------
Sub test()

Dim C as range
With Worksheets("Recap")
For each c in .Range("A1:A5")
c.value = GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", C.address(0,0))
next
End with
End Sub
'-------------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= > ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------





"Philippe" a écrit dans le message de groupe de
discussion :

Bonjour
je ne suis pas grand spécialiste et si vous pouviez me dire ou je dois
mettre la ligne de commande dans l'exemple de fichier
http://www.cijoint.fr/cjlink.php?file=cj201001/cijoRpuS8b.xls

Si je saisis en dur je pense que le fichier source doit etre ouvert
Merci d'avance

"michdenis" a écrit dans le message de news:

Bonjour,

Pour utiliser la fonction personnalisée :
Tu peux répéter la ligne de commande aussi souvent
que désiré pour les différentes cellules à extraire...
ou créer une boucle !

L'autre alternative est de saisir en dur ce type de formule
='C:Mes Documents[MonFichier.xls]MaFeuille!A1
dans la cellule que l'on veut obtenir le résultat.

'--------------------------------
Sub Test()
MsgBox GetValue("C:UsersDMDocuments", _
"Fichier_Source.xls", _
"Feuil1", "C5")
End Sub
'--------------------------------

'Dans un module standard, tu copies cette fonction :

Public Function GetValue(ByVal path, ByVal file, _
ByVal sheet, ByVal ref) As Variant

' Macro XL4 Merci à John Walkenbach
' ============================= >> ' Retrieves a value from a closed workbook

Dim Arg As String

' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

' Create the argument
Arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents

End Function
'---------------------------------------



"Philippe" a écrit dans le message de groupe de
discussion :
e#
bonjour

je reçois chaque mois des fichiers excel CENTRE_X,CENTRE_Y, etc..... et
j'ai
un fichier RECAP ou sur une feuille j'ai colonne A avec
CENTRE_X,CENTRE_Y..
sur des lignes differentes.
Je voudrai récupérer sur la RECAP une donnée qui se trouve sur chaque
fichier en B34 soit sur RECAP
A2ou il y a le nom du centre X B2 ³4 de CENTRE_X
A3 ou il y ale nom du centre Y B3 ³4 de CENTRE_Y
etc... mais cela pour chaque mois. Suis-je assez clair?
Merci