Copie d'un onglet dans une nouveau fichier

Bonjour,

Je souhaite copier un onglet (qui se trouve là où il y a la macro) dans une nouvelle feuille. (Crée au début du code)

Je ne comprend pas pourquoi cela marche pas. Je pense que c'est ce morceau de code (en rouge)

Sub ColleEtSauve()

Dim Serv As String

Dim LaDate As String

Serv = Range("B4").Value

LaDate = Format(Date, "YYYY-M-D")

Range(Serv).Copy

Workbooks.Add 'Ouvre un nouveau Fichier XL

Sheets(1).Name = "SYNTHESE"

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Selection.PasteSpecial 8

ThisWorkbook.Sheets("DONNEES 2019").Range("DATA19").AutoFilter Field:=19, Criteria1:= _

Serv

ThisWorkbook.Sheets("DONNEES 2019").Range("DATA19").Copy

Sheets.Add(After:=Sheets("SYNTHESE")).Name = "DONNEES 2019"

ActiveSheet.Paste

ThisWorkbook.Sheets("DETAILS 20VS19").Copy

Sheets.Add(After:=Sheets("SYNTHESE")).Name = "DONNEES 2019"

ActiveSheet.Paste

ActiveWorkbook.SaveAs Filename:= _

"C:\Users"

FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:=False, CreateBackup:=False

End Sub

Merci de votre aide

Bonjour saaku, le forum,

Tu précise l'onglet

Sheets("SYNTHESE")

mais pas le classeur Excel. Peut-être que Excel veut savoir de quel classeur tu parles.

Là comme ça c'est assez compliqué de comprendre ton erreur.

Bien cordialement,

Même si j'enlève la ligne. Le code m'affiche toujours le même message d'erreur :

La méthode Paste de la classe Worksheet a échoué.

Je pense que le problème est que dans l'onglet que je souhaite copier contient un TCD, car si dans ma ligne je précise .Range, cela fonctionne. J'ai essayé de mettre :

ThisWorkbook.Sheets("DETAILS 20VS19") .PivotTables("TCD19") .Copy

Mais ça marche pas non plus.

Merci pour votre aide.

J'ai modifié un peu le code et l'ordre et ça fonctionne.

Sub ColleEtSauve()

Dim Serv As String

Dim LaDate As String

Serv = Range("B4").Value

LaDate = Format(Date, "YYYY-M-D")

Sheets("DETAILS 20VS19").Copy

Sheets.Add(Before:=Sheets("DETAILS 20VS19")).Name = "SYNTHESE"

ThisWorkbook.Sheets("SYNTHESE").Range(Serv).Copy

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Selection.PasteSpecial 8

ThisWorkbook.Sheets("DONNEES 2019").Range("DATA19").AutoFilter Field:=19, Criteria1:= _

Serv

ThisWorkbook.Sheets("DONNEES 2019").Range("DATA19").Copy

Sheets.Add(After:=Sheets("DETAILS 20VS19")).Name = "DONNEES 2019"

ActiveSheet.Paste

ActiveWorkbook.SaveAs Filename:= _

End Sub

Rechercher des sujets similaires à "copie onglet nouveau fichier"