Bonjour,
"GetObject" ouvre le classeur (celui-ci est masqué). Pourquoi ne pas l'ouvrir avec la méthode "Open" ? Pour éviter un affichage répétitif, utilise la ligne :
Application.ScreenUpdating = False
Pour la boucle sur les fichiers, regarde l'aide sur la fonction Dir.
Ca pourrait ressembler à ça (non testé). Note que "Chemin" représente le chemin des fichiers et non pas un fichier particulier :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub ExtractionZ()
Dim Chemin As String
Dim w2 As Workbook
Dim w As Workbook
Dim Fichier As String
Application.ScreenUpdating = False
Chemin = Sheets("chem").Range("C4").Value 'représente le chemin, pas le fichier
Fichier = Dir(Chemin & "\*.xls*")
Do While Fichier <> ""
Application.EnableEvents = False
Set w = Workbooks.Open(Chemin)
w.Sheets("Z - PS").Range("A5:K3100").Copy
Application.EnableEvents = True
Workbooks("Synthèse.xlsm").Activate
Sheets("PS").Select
Range("A7").PasteSpecial xlPasteAll
Application.CutCopyMode = False
w.Close SaveChanges:=False
Fichier = Dir
Loop
Application.ScreenUpdating = True
End Sub |
Partager