Enregistrer une feuille dans un nouveau classeur avec un nom spécifique sous VBA

dapiloux

XLDnaute Nouveau
Bonjour a tous et a toutes

Je n'arrive pas a copier une feuille de mon classeur et la copier dans un nouveau classe, dans un répertoire spécifique, tout en lui donnant le nom d'une cellule. Mon classeur se nomme feuille saisie_v3 et ma feuille que je souhaite copier se nomme CoupeVIM.
Voila ce j'arrive a faire.

Sheets("CoupeVIM").Select
Sheets("CoupeVIM").Copy
ChDir "F:\"
ActiveWorkbook.SaveAs Filename:="F:\Classeur1.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False

Pour bien faire si mon classeur porte le nom de la cellule G2 serais le top.
Je joint un modèle pour plus de compréhension.
Merci d'avance.
 
Dernière modification par un modérateur:

PMO2

XLDnaute Accro
Re : Enregistrer une feuille dans un nouveau classeur avec un nom spécifique sous VBA

Bonjour,

Quelque chose comme
Code:
Sub validecoupe()
Dim WB As Workbook
Dim Nom$

Nom$ = Sheets("CoupeVIM").[g2]
If Nom$ = "" Then Nom$ = "zzzz"
Set WB = Workbooks.Add(xlWBATWorksheet)

ThisWorkbook.Sheets("CoupeVIM").Copy Before:=WB.Sheets(1)
Application.DisplayAlerts = False
WB.Sheets(2).Delete
Application.DisplayAlerts = True

WB.SaveAs Filename:="F:\" & Nom$ & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
WB.Close SaveChanges:=False
End Sub
 

dapiloux

XLDnaute Nouveau
Re : Enregistrer une feuille dans un nouveau classeur avec un nom spécifique sous VBA

Bonjour PMO2

Oui c'est bien ça merci.
Petit question:
Si je change l'adresse de destination qui est pour l'instant celui-çi:
WB.SaveAs Filename:="F:\" & Nom$ & ".xlsx"

Je doit par exemple noté la nouvelle adresse comme ça?
WB.SaveAs Filename:="C:\MES DOCUMENTS\" & Nom$ & ".xlsx"
 

dapiloux

XLDnaute Nouveau
Re : Enregistrer une feuille dans un nouveau classeur avec un nom spécifique sous VBA

Bonjour
Donc après plusieurs test ça ne marche pas si je change "F:\" pour "C:\MES DOCUMENTS\"
Comment faire? quel est le code, je ne comprend pas?
Merci pour vos réponse
 

Staple1600

XLDnaute Barbatruc
Re : Enregistrer une feuille dans un nouveau classeur avec un nom spécifique sous VBA

Bonsoir à tous


Une autre manière de l'écrire, un chouia plus court
Code:
Sub Wks2Wbk()
Dim NWBK As Workbook
Sheets("Feuil1").Copy: Set NWBK = ActiveWorkbook
NWBK.SaveAs "C:\temp\" & NWBK.Sheets(1).[g2] & ".xlsx", FileFormat:=51: NWBK.Close False
End Sub

NB: penser à adapter le nom de la feuille et du chemin avant de tester
Et il vaut mieux que la cellule G2 ne soit pas vide ;)
 

Discussions similaires