Salut Nicolas, JF, le Forum
Ton problème peut-être surmontable, mais pour celà il faut tout de même avec plus d'information que ce que tu nous expliques.
Comme te l'a dit JF, l'enregistreur de Macro peut déjà pas mal t'avancer, mais à ce stade il est impossible de t'aider d'avantage sans connaitre :
1) La structure des 5 fichiers (Emplacement/Nombre de Feuilles/Nom des Feuilles/Dimension des base de données,Etc)
2) La Structure des Tableaux...Est elle toujours la même sur les 5 classeurs... Ces tableaus se trouvent-ils dans la même réference de feuille (nom d'onglet, ou position de feuille "Index")
3) Sur le fichier "Cible", celui qui recevra les données, que veux-tu au juste ? que les données se liste à la suite, ou bien c'est à nouveau une feuille structurée ou certaines cellules précises devront recevoir des condensés d'information émanants des 5 classeurs sources...
Enfin tout ceci pour te dire que ce genre de demande est pratiquement impossible à résoudre par une solution "clef en main" au travers d'un forum. Tu auras pas mal d'adaptations à mettre au point et ne connaissant pas tes aptitudes en programmation, il est très difficile d'avancer.
Voici une méthode pour ouvrir et copier des données provenant de trois différents classeurs... Structurés identiquement !
Cette méthode implique que les trois classeurs "Source" soient placés dans un seul et même répertoire "C:\Mes Documents\Test XLD\" (changer le code comme nécessaire), que tous les trois classeurs "Source" aient 4 colonnes (A
![Big Grin :D :D](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
) qui contiennent les données à reporter en Classeur Cible, que ces données soient sur le premier index de feuille (premier onglet à partir de la gauche = Sheets(1))... Et donc, toutes les lignes de A à D seront reportées à la fin de l'execution du code, ligne par ligne à la suite, dans la Sheets(1) du classeur "Cible"...
Voici un exemple de code à recopier dans un module standard du classeur "Cible"
Option Explicit
Sub OuvrirReportFichiers()
Dim WBBase As Workbook
Dim WB1 As Workbook, WB2 As Workbook, WB3 As Workbook
Dim Chemin As String
Dim Lbase As Integer, Lsource As Integer, X As Integer
Chemin = "C:\Mes Documents\Test XLD\"
Set WBBase = ThisWorkbook
With Workbooks
.Open Chemin & "Classeur1.xls"
.Open Chemin & "Classeur2.xls"
.Open Chemin & "Classeur3.xls"
End With
Set WB1 = Workbooks("Classeur1.xls")
Set WB2 = Workbooks("Classeur2.xls")
Set WB3 = Workbooks("Classeur3.xls")
Lbase = WBBase.Sheets(1).Range("A65536").End(xlUp).Row + 1
Lsource = WB1.Sheets(1).Range("A65536").End(xlUp).Row
For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & "
" & Lbase) = _
WB1.Sheets(1).Range("A" & X & "
" & X).Value
Lbase = Lbase + 1
Next X
Lsource = WB2.Sheets(1).Range("A65536").End(xlUp).Row
For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & "
" & Lbase) = _
WB2.Sheets(1).Range("A" & X & "
" & X).Value
Lbase = Lbase + 1
Next X
Lsource = WB3.Sheets(1).Range("A65536").End(xlUp).Row
For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & "
" & Lbase) = _
WB3.Sheets(1).Range("A" & X & "
" & X).Value
Lbase = Lbase + 1
Next X
WB1.Close 0
WB2.Close 0
WB3.Close 0
End Sub
Voilà Nicolas pour une première approche, qui ne fera probablement pas ton affaire, mais qui aura au moins l'avantage de te montrer comment il est important de connaitre parfaitement la structure des fichiers sur lesquels on doit travailler... Tu noteras aussi qu'il est primordial que les fichiers aient une certaine homogénéité.
Bonne Journée
@+Thierry