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