Bonjour Romain, bonjour le forum,
La règle d'or en VBA c'est d'éviter autant que possible les Select (ou Activate) inutiles. Ils ne font que ralentir l'exécution du code et sont source de nombreux bugs.
Si j'ai bien compris, ton code modifié :
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Set CS = ThisWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets("Feuil22") 'définit l'onglet source OS
Workbooks.Add 'ajoute un classeur vierge
Set CD = ActiveWorkbook 'définit le classeur destination CD
Set OD = CD.Worksheets(1) 'définit l'onglet destination OD (le premier onglet du classeur destination)
'copie la plage A6:M100000 de l'onglet source et la colle dans A1 de l'onglet destination
OS.Range(OS.Cells(6, 1), OS.Cells(100000, 13)).Copy OD.Range("A1")
CD.Sheets.Add After:=CD.Worksheets(Worksheets.Count()) 'ajoute un onglet au classeur destination en dernière position
Set OD = ActiveSheet 'redéfinit l'onglet destination OD
Set OS = CS.Worksheets("Feuil6") 'redéfinit l'onglet source OS
'copie la plage B1:C100 de l'onglet source et la colle dans A1 de l'onglet destination
OS.Range(OS.Cells(1, 2), OS.Cells(1000, 3)).Copy OD.Range("A1")
End Sub