Bonjour,

Je viens sur ce forum ayant des petits soucis sur mon code VBA.

Je vous explique brièvement le problème.

J'ai un fichier source contenant 3 feuilles (on va dire A, B et C). Chaque feuille contient l'identifiant d'un groupe (16 groupes) et d'autres colonnes qui diffèrent selon la feuille A B ou C.

J'ai tout d'abord créé un code VBA permettant de transformer ces 3 feuilles en 48 feuilles (une feuille par groupe et par feuille (16 feuilles pour A, 16 pour B et 16 pour C)

Voici le code utilisé :
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
25
26
27
28
29
30
31
32
33
34
35
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim maxfeuil As Integer, m As Integer
maxfeuil = Sheets.Count
For m = 1 To maxfeuil
 Sheets(m).Activate
        For i = 1 To 9
            Range("B1").Activate
            Selection.AutoFilter
            ActiveSheet.Range("$A$1:$O$428").AutoFilter Field:=2, Criteria1:="10" & i
            Range("A1:AD428").Select
 
            Selection.Copy
            Sheets.Add After:=Sheets(Sheets.Count)
            ActiveSheet.Paste
            Sheets(m).Select
            Application.CutCopyMode = False
            Selection.AutoFilter
        Next
            For j = 10 To 16
                Range("B1").Activate
                Selection.AutoFilter
                ActiveSheet.Range("$A$1:$O$428").AutoFilter Field:=2, Criteria1:="1" & j
                Range("A1:AD428").Select
 
                Selection.Copy
                Sheets.Add After:=Sheets(Sheets.Count)
                ActiveSheet.Paste
                Sheets(m).Select
                Application.CutCopyMode = False
                Selection.AutoFilter
            Next
 Next
End Sub
Ensuite j'aimerais coller les feuilles pour chaque groupe dans un nouveau classeur (il y a 3 feuilles pour un groupe)
Ainsi je dois obtenir à la fin 16 classeurs avec 3 feuilles (A, B et C) pour chaque groupe. (Exemple : un premier classeur avec 3 feuilles, A B et C avec les info du groupe 1, un deuxième classeur avec 3 feuilles, A B et C avec les infos du groupe 2, et ainsi de suite jusqu'au groupe 16).

Le problème est que je dois copier coller les feuilles correspondante. Donc après mon premier code, j'ai 48 feuilles, je dois donc pour le premier classeur copier coller les feuilles 4, 20 et 36, pour le deuxième classeur les feuilles 5,21 et 37, pour le 3e, les feuilles 6, 22 et 38 et ainsi de suite.

Voici mon ébauche de code, je reste coincé..

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
Private Sub CommandButton3_Click()
Dim i As Integer
Dim Cible As Workbook
Dim Ws As Worksheet
 
Application.DefaultSaveFormat = xlOpenXMLWorkbook
 For i = 1 To 16 'Création des 16 classeurs
Set Cible = Application.Workbooks.Add
 
For Each Ws In ThisWorkbook.Worksheets 'dans cette étape que ça coince
    Ws.Copy before:=Cible.Worksheets("Feuil1")
Next Ws
Next i
 
 
Application.DefaultSaveFormat = xlExcel8
End Sub
Merci par avance !!!!