G
gilles21
Guest
bonjour,
j'ai trouvé une macro permettant de copier une plage de cellules de tous les fichiers fermés, situés sous le meme repertoire :
----------------------------------------------------------------------------
Sub LoopThruFiles()
'Ron De Bruin, mpep
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("C:\toto\*.xls")
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
place = Range(Cells((((x - 1) * 1) + 3), 1), Cells(((x * 1)), 3)).Address
GetValues "C:\toto", FilesArray(LoopCounter), "feuil1", "a1:c10", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "\[" & FName & "]" & "feuil1" & "'!" & cellRange
.Value = .Value
End With
End Sub
-------------------------------------------------------------------------------------------------
je voudrais adapter cette macro à une plage de cellules (ex A1:F1) de 7 fichiers sources , vers une plage de cellules du fichier destination (ex C10:H16)
j'imagine que tout ce passe ici:
place = Range(Cells((((x - 1) * 1) + 3), 1), Cells(((x * 1)), 3)).Address
GetValues "C:\toto", FilesArray(LoopCounter), "feuil1", "a1:c10", place
en "bidouillant", je n'ai pas obtenu de résultat ni compris comment ça marche
j'ai donc besoin d'aide pour adapter les données car je suis novice
merci d'avance
j'ai trouvé une macro permettant de copier une plage de cellules de tous les fichiers fermés, situés sous le meme repertoire :
----------------------------------------------------------------------------
Sub LoopThruFiles()
'Ron De Bruin, mpep
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("C:\toto\*.xls")
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
place = Range(Cells((((x - 1) * 1) + 3), 1), Cells(((x * 1)), 3)).Address
GetValues "C:\toto", FilesArray(LoopCounter), "feuil1", "a1:c10", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "\[" & FName & "]" & "feuil1" & "'!" & cellRange
.Value = .Value
End With
End Sub
-------------------------------------------------------------------------------------------------
je voudrais adapter cette macro à une plage de cellules (ex A1:F1) de 7 fichiers sources , vers une plage de cellules du fichier destination (ex C10:H16)
j'imagine que tout ce passe ici:
place = Range(Cells((((x - 1) * 1) + 3), 1), Cells(((x * 1)), 3)).Address
GetValues "C:\toto", FilesArray(LoopCounter), "feuil1", "a1:c10", place
en "bidouillant", je n'ai pas obtenu de résultat ni compris comment ça marche
j'ai donc besoin d'aide pour adapter les données car je suis novice
merci d'avance