Selection de feuilles VBA
Bonjour,
Je vous explique avant tout mon fichier :
Le fichier de départ est un fichier excel comprenant 3 feuilles, que l'on appellera ici "A", "B" et "C".
Chaque feuille contient le même nombre de ligne mais pas le même nombre de colonnes.
Dans chacune des feuilles, il y a une colonne "groupe" avec un identifiant de groupe, il y a 16 groupes.
Ce que je veux faire :
-> Une feuille par groupe, explications : pour la feuille A, j'aurai 16 feuilles (1 par groupe), pour la feuille B, j'aurai 16 feuilles et pour la C également.
Mon premier code permet donc de créer ces 48 feuilles supplémentaires sur le même fichier excel :
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 SubMaintenant, ce que je veux faire :
Je veux désormais transformer ce fichier qui comprend les 3 feuilles A,B et C + les 48 nouvelles feuilles
en classeurs.
Je voudrais donc 16 classeurs excel avec 3 feuilles "A" "B" "C" avec les données associées à chaque groupe..
Voici une ébauche de code, le problème est qu'il me copie colle TOUTES les feuilles dans un nouveau classeur, et moi ce que je veux c'est qu'il prenne les 3 premières feuilles ensemble, puis les 3 suivantes, puis les 3 suivantes, etc..
Private Sub CommandButton3_Click()
Dim i As Integer
Dim Cible As Workbook
Dim Ws As Worksheet
Application.DefaultSaveFormat = xlOpenXMLWorkbook
For i = 1 To 3
Set Cible = Application.Workbooks.Add
For Each Ws In ThisWorkbook.Worksheets
Ws.Copy before:=Cible.Worksheets("Feuil1")
Next Ws
Next i
Application.DefaultSaveFormat = xlExcel8
End SubAvez-vous des suggestions ? je vous remercie ! Si vous ne comprenez pas mon problème, n'hésitez pas à poser des questions que je puisse donner plus de renseignements si besoin ..