La question étant récurrente, je propose deux méthodes
1 - Copier toutes les feuilles de classeur1 dans classeur2 à l'exception de certaines feuilles
2 - Ne copier que certaines feuilles de classeur1 dans classeur2
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 Sub CopieDeCertainesFeuilles() Dim CL1 As Workbook Dim CL2 As Workbook Dim LaFeuille as worksheet Dim i As Byte, ListeANePasCopier '(as variant) Dim ko As Boolean Set CL1 = Workbooks("Classeur1.xls") Set CL2 = Workbooks("Classeur2.xls") ListeANePasCopier = Array("Feuil1", "Feuil6", "Feuil9") For Each LaFeuille In CL1.Worksheets For i = 0 To UBound(ListeANePasCopier) ko = ko Or LaFeuille.Name = ListeANePasCopier(i) Next If Not ko Then LaFeuille.Copy After:=CL2.Worksheets(CL2.Worksheets.Count) ko = False Next Set CL1 = Nothing Set CL2 = Nothing End Sub
Si une méthode plus simple fait la même chose... merci de la proposer.
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 Sub CopieDeFeuillesChoisies() Dim CL1 As Workbook Dim CL2 As Workbook Dim LaFeuille As Worksheet Dim i As Byte, ListeACopier '(as variant) Dim Ok As Boolean Set CL1 = Workbooks("Classeur1.xls") Set CL2 = Workbooks("Classeur2.xls") ListeACopier = Array("Feuil1", "Feuil3", "Feuil7") For Each LaFeuille In CL1.Worksheets For i = 0 To UBound(ListeACopier) Ok = Ok Or LaFeuille.Name = ListeACopier(i) Next If Ok Then LaFeuille.Copy After:=CL2.Worksheets(CL2.Worksheets.Count) Ok = False Next Set CL1 = Nothing Set CL2 = Nothing End Sub
Partager