Hello tout le monde,

Je me permets d'ouvrir un topic car je tente de réaliser une macro mais j'ai un petit problème .
L'idée : ouvrir tous les classeurs de mon dossier (c'est ok), copy / paste les lignes 14 à 27 des classeurs que j'ai open , refermer tous les classeurs (c'est ok) .

J'explique ce que je souhaite réaliser : copy / paste les lignes 14 à 27 de tous les classeurs ouverts dans un classeur vierge (celui contenant la macro) le problème est que je copy / paste les lignes du premier workbook puis du second mais le second écrase les données précédentes ! Je n'arrive pas à boucler de sorte que à chaque copy / past pour avoir l'intégralité des données de chaque classeur dans une feuille du new. Je pense qu'il faut utiliser un copy/paste au niveau de la destination qui stipulerait à partir de la derniere cellule vide mais j'ai un peu de mal .

Si quelqu'un peut m'aider et surtout m'expliquer , par avance merci !!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
Dim lig As Integer
Dim i As Integer
Dim Wb As Workbook
 
MyFolder = "C:\*****\Extract"
MyFile = Dir(MyFolder & "\*.xls")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
    For Each Wb In Application.Workbooks
     For lig = 14 To 27
        Wb.Sheets(1).Cells(lig, 1).EntireRow.Copy
        For i = 1 To (27 - 14) * 4
        ThisWorkbook.Sheets(1).Cells(i, 1).PasteSpecial Paste:=xlPasteValues
        Next i
     Next lig
    Next
 
ActiveWorkbook.Close SaveChanges:=False
MyFile = Dir
Loop
End Sub