Bonjour Aebenae,
Une autre proposition:
Sub CreerClasseur()
Dim sNewWB As String
Dim oWB As Workbook
Dim oFS As Scripting.Filesystemobject
Dim lRep As Long, booOK As Boolean
Dim oSheet As Worksheet
Set oSheet = ActiveSheet
Set oFS = CreateObject("Scripting.FilesystemObject")
'On demande le nom du fichier à créer
With Application.FileDialog(msoFileDialogSaveAs)
.AllowMultiSelect = False
.Show
If Len(.SelectedItems(1)) > 0 Then
sNewWB = .SelectedItems(1)
Else
MsgBox "Vous n'avez pas indiqué le classeur à créer!"
Exit Sub
End If
End With
'Si le classeur existe, on demande s'il faut le remplacer
If oFS.FileExists(sNewWB) Then
lRep = MsgBox("Le classeur '" & sNewWB & "' existe dejà!" & vbCrLf _
& "Voulez-vous le remplacer?", vbYesNo + vbCritical + vbDefaultButton2, "CONFIRMATION DE REMPLACEMENT")
If lRep = vbYes Then
oFS.DeleteFile sNewWB, True
Else
Exit Sub
End If
End If
'On créé le classeur
Set oWB = Excel.Workbooks.Add
'On recopie la feuille
oSheet.Copy after:=oWB.Worksheets(oWB.Worksheets.Count)
oWB.SaveAs sNewWB
oWB.Close
Set oWB = Nothing
End Sub