EXCEL - VBA - Copier - coller d'un classeur sur un nouveau classeur

airsage

XLDnaute Junior
Bonjour,

J'ai ma macro qui me créé un nouveau classeur à partir d'une liste.
J'aimerais faire un copier coller d'une feuille du classeur d'origine, ce nouveau classeur (dont le nom change a chaque fois).

Cependant je n'arrive pas a trouver le fonction qui me permet de coller ma feuille sur le classeur que je viens de créer. Il me colle la feuille du classeur d'origine sur un 3ème classeur.
Le problème doit venir d'ici "Sheets("TCD_BACKLOG").Copy Before:=Add.Sheets(1)" mais impossible de trouver la solution.


Sub CreationFichiers()
Dim Ws As Worksheet
Dim J As Long, NbLg As Long
Dim Chemin As String
Dim NbFeuille As Integer
Dim WB As String

Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & Application.PathSeparator
NbFeuille = Application.SheetsInNewWorkbook
Set Ws = Sheets("TCD_BACKLOG") ' Nom de la feuille contenant la liste
NbLg = Ws.Range("B" & Rows.Count).End(xlUp).Row
Application.SheetsInNewWorkbook = 1
Application.DisplayAlerts = False ' Ecrase l'éventuel ancien fichier sans demande
For J = 13 To NbLg - 1
Set Add = Workbooks.Add
With Workbooks.Add(1)
Windows(XLS_Sla).Activate
Sheets("TCD_BACKLOG").Select
Sheets("TCD_BACKLOG").Copy Before:=Add.Sheets(1)
.SaveAs Filename:=Chemin & Ws.Range("B" & J) & ".xlsx", FileFormat:=xlOpenXMLWorkbook
.Close
End With
Next J
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = NbFeuille
MsgBox "Terminé"
End Sub

Merci par avance pour votre aide.
 

solquagerius

XLDnaute Junior
Re : EXCEL - VBA - Copier - coller d'un classeur sur un nouveau classeur

Salut,

Ton nouveau classeur s'appelle Add (set Add = workbooks.add(1))
Essaie de mettre Add avant les feuilles que tu définis : Add.sheets("TCD...").select

D'une façon générale, quand tu travailles sur plusieurs classeurs, il faut toujours définir tout le nom des variables : classeur.feuille.cellule. De cette façon tu ne peux pas te tromper (et Excel non plus :p)
 

airsage

XLDnaute Junior
Re : EXCEL - VBA - Copier - coller d'un classeur sur un nouveau classeur

Bonjour solquagerius,

Merci pour ta réponse.

Pour être plus précis, mon problème vient de ce bout de code. Comment puis faire pour que TOTO soit égale au fichier que je viens de créer (Workbooks.Add(1)) et non sur un autre nouveau fichier ?
...
With Workbooks.Add(1)
Windows(XLS_Sla).Activate
Sheets("TCD_BACKLOG").Select
Sheets("TCD_BACKLOG").Copy Before:=TOTO.Sheets(1)
...
End With
 

solquagerius

XLDnaute Junior
Re : EXCEL - VBA - Copier - coller d'un classeur sur un nouveau classeur

Quand tu écris set Add = workbooks.add ca créé le classeur et la variable Add permet d'y accéder.

Au lieu de "With Workbooks.add(1)" (qui doit effectivement créé un nouveau classeur, je n'ai pas testé le code), tu peux écrire "With Add" tout simplement.
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400