Copie coller avec un pas

Fermé
mateo44 Messages postés 11 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 18 avril 2016 - Modifié par baladur13 le 18/04/2016 à 09:50
mateo44 Messages postés 11 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 18 avril 2016 - 18 avril 2016 à 11:00
Bonjour,

Je vous remercie par avance pour les réponses et aides éventuelles que vous allez m'apporter.

Mon classeur excel comporte 3 feuilles que l'on appellera "1" "2" et "3". Chaque feuille comporte un nombre de colonnes différentes mais un nombre de lignes identiques.

J'ai deux codes écrit :

- Le premier qui permet de créer 16 feuilles à partir de la feuille "1" sur le même classeur (une feuille par groupe, il y a 16 groupes), de même pour la feuille "2" et "3", ainsi mon premier code me créer 16*3 feuilles sur un même classeur (48 feuilles).

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 


- un deuxième code qui me permet de copier coller les feuilles d'un classeur à un autre.

Private Sub CommandButton3_Click()
Dim Cible As Workbook
Dim Ws As Worksheet
 
Application.DefaultSaveFormat = xlOpenXMLWorkbook
 
Set Cible = Application.Workbooks.Add
 

For Each Ws In ThisWorkbook.Worksheets
    Ws.Copy Before:=Cible.Worksheets("Feuil1")
Next Ws
 
Application.DefaultSaveFormat = xlExcel8

End Sub


Mon objectif, 2 possibilités possibles :

Soit utiliser le code 1 puis copier coller les feuilles par 3 dans un nouveau classeur, d'où une première question :

--> J'ai 48 feuilles, comment je fais pour copier coller les 3 premières feuilles dans un classeur, puis les 3 suivantes dans un autre puis les 3 suivantes, etc..


Soit séparer (via filtre et autres je ne sas pas) et les coller directement dans un autre classeur (ce que je ne sais pas faire non plus)

Avez vous des idées ?

Je vous remercie par avance..

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

mateo44 Messages postés 11 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 18 avril 2016
Modifié par mateo44 le 18/04/2016 à 11:01
Private Sub CommandButton3_Click()
Dim i As Integer
Dim j As Integer
Dim Cible As Workbook
Dim Ws As Worksheet
 
Application.DefaultSaveFormat = xlOpenXMLWorkbook
 For i = 1 To 16
Set Cible = Application.Workbooks.Add

For j = 4 To 48
For Each Ws In ThisWorkbook.Worksheets
    Ws.Copy before:=Cible.Worksheets("Feuil1")
Next Ws
Next i
 
Application.DefaultSaveFormat = xlExcel8
End Sub


Voici une ébauche de code qui permet de créer 16 classeurs, j'aimerais maintenant pouvoir modifier le

For Each Ws In ThisWorkbook.Worksheets
    Ws.Copy before:=Cible.Worksheets("Feuil1")
Next Ws


Pour dire "tu me copie colle la feuille 4 à 6 dans un classeur, puis 7 à 9 dans un autre, etc.."
Je pensais utiliser le "step" mais si je fais
for j = 4 to 48 step 3
il va me prendre que la 4, la 7, la 9 ....
0