Lecture plusieurs fichiers

Le
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 ³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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20918581
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" 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
Philippe
Le #20952981
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"
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" 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



michdenis
Le #20956361
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"
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"
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" 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



Philippe
Le #20963331
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"
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" 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"
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" 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






Publicité
Poster une réponse
Anonyme