Copie coller avec un pas
mateo44
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
mateo44 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
mateo44 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
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).
- un deuxième code qui me permet de copier coller les feuilles d'un classeur à un autre.
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..
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:
- Copie coller avec un pas
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Retrouver un copier-coller android - Guide
1 réponse
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 3il va me prendre que la 4, la 7, la 9 ....