slaurent01
XLDnaute Junior
Bonjour,
J'ai un problème que je n'arrive pas à résoudre depuis un bon moment. et je viens demander de l'aide.
J'ai un onglet et quand je clique sur SAUVE, je veux copier cet onglet "Devis" dans un nouveau classeur puis le sauvegarder selon un nom définit par Vba et fermer ce nouveau classeur.
J'arrive à copier l'onglet dans un nouveau classeur,
J'arrive à créer le nom,
Mais pas la sauvegarde, mon code ne marche pas, ni la fermeture du dossier.
Je suis plus que débutant en vba, Je vous remercie par avance
Cordialement stéphane
J'ai un problème que je n'arrive pas à résoudre depuis un bon moment. et je viens demander de l'aide.
J'ai un onglet et quand je clique sur SAUVE, je veux copier cet onglet "Devis" dans un nouveau classeur puis le sauvegarder selon un nom définit par Vba et fermer ce nouveau classeur.
J'arrive à copier l'onglet dans un nouveau classeur,
J'arrive à créer le nom,
Mais pas la sauvegarde, mon code ne marche pas, ni la fermeture du dossier.
Je suis plus que débutant en vba, Je vous remercie par avance
Code:
Sub EnregistrerSous()
Dim NomFichier As Variant, v As Integer, X As String, w As String, Y As String, z As String, NomDefaut As String
'Définition des variables qui vont composer le nom du fichier
w = ThisWorkbook.Worksheets("Devis").Range("D3")
v = "-" & ThisWorkbook.Worksheets("Devis").Range("A4")
X = "-" & ThisWorkbook.Worksheets("Devis").Range("D4")
Y = "-" & Format(Date, "dd mm yyyy")
z = "-" & Format(Time, "hhmmss")
'Création du nom du fichier
NomDefaut = w & v & X & Y & z
'Création d'un nouveau classeur et copie de l'onglet devis
Set wk = Workbooks.Add(xlWBATWorksheet)
Set Ws = ThisWorkbook.Worksheets("Devis")
Ws.Copy After:=wk.Sheets(Sheets.Count)
'Ouverture de Enregistrer sous
NomFichier = Application.GetSaveAsFilename(NomDefaut, "Microsoft Excel (*.xlsm), *.xlsm")
'Sauvegarde
If NomFichier = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=NomFichier
End Sub