1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Sub recup()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Workbook 'déclare la variable OS (Onglet Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim F As String 'déclare la variable F (Fichier)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Application.ScreenUpdating = False 'masque les raffraîchissements d'écran
Set CD = ThisWorkbook 'définit la classeur destination CD
Set OD = CD.Worksheets(1) 'définit l'onglet destination OD (ici j'ai codé comme étant le premier onglet du classeur destination, tu adapteras si ce n'est pas ça)
CA = "c:\Users\Desktop\recap\" 'dédinit le chemin d'accès CA
F = Dir(Chemin & "*.xls") 'définit le premier fichier F d'extension xls ayant CA comme chemin d'accès
Do While Fichier <> "" ' boucle tant que F n'est pas vide
Set CS = Workbooks.Open(CA & F) 'définit le classeur source CS en l'ouvrant
Set OS = CS.Worksheets(1) 'définit l'onglet source OS (ici j'ai codé comme étant le premier onglet du classeur source, tu adapteras si ce n'est pas ça)
'définit la cellule de destination DEST (A1 si A1 de l'onglet OD est vide, sinon la première celllue vide de la colonne A de l'onglet OD)
If OD.Range("A1").Value = "" Then Set DEST = OD.Range("A1") Else Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
OS.Range("A1:EP2").Copy DEST 'copie la plage A1:EP2 de l'onglet source et la colle dans DEST
CS.Close False 'ferme le classeur source sans enregistrer
Fichier = Dir 'définit le prochain dichier F d'extension xls ayant CA comme chemin d'accès
Loop 'boucle
Application.ScreenUpdating = True 'Affiche les raffraîchissements d'écran
End Sub |
Partager