Copier worksheet dans nouveau workbook

Bonjour,

Je souhaite copier un onglet et créer un nouveau classeur dans lequel je copie cet onglet (qui contient un formulaire VBA que je souhaite conserver donc format xlsm)

J'ai utilisé le code suivant mais cela ne fonctionne pas, enfin le collage ne fonctionne pas :

Sub New_Workbook()

Worksheets("Base clients").Copy

Set New_wkb = Workbooks.Add

With New_wkb

.Title = Range("F4").Value & " onboarding"

.SaveAs Filename:=ThisWorkbook.Path & "\" & "Client onboarding.xlsx"

End With

New_wkb.Activate

Range("A1").activate

Selection.PasteSpecial Paste:=xlPasteValues

End Sub

Merci par avance pour votre aide

Bonjour, sans classeur difficile de faire de testes... Mais essaye cette approche :

Sub ExporterOnglets()
    Dim wb As Workbook
    Dim wbN As Workbook
    Dim i As Integer, n As Integer, j As Integer

    Set wb = ThisWorkbook
    Application.ScreenUpdating = False
    For i = 1 To 1 '1 to 1 si c'est l'onglet 1 que tu veux copier ou 2 to 4 si c'est l'onglet 2 à 4 et si c'est pour tous les onglet : 1 to wb.Sheets.Count
        Set wbN = Workbooks.Add()  ' nouveau classeur
        wbN.SaveAs wb.Sheets(i).Name  'renommer
        n = wbN.Sheets.Count    'onglet par défaut dans classeur
        For j = 1 To n
            wbN.Sheets(j).Name = " T_E_M_P_" & j  'nom temporaire pour éviter erreur
        Next j
        wb.Sheets(i).Copy after:=wbN.Sheets(wbN.Sheets.Count) 'onglet X
        Application.DisplayAlerts = False
        For j = 1 To n
            wbN.Sheets(1).Delete  'effacer les onglets par défauts
        Next j
        Application.DisplayAlerts = True
        wbN.Save
        wbN.Close
        Set wbN = Nothing
    Next i
    Application.ScreenUpdating = True
End Sub

Bonjour,

Une autre proposition.

Cdlt.

Public Sub New_Book()
Dim ws As Worksheet, strPath As String, strFilename As String
    strPath = ThisWorkbook.Path & Application.PathSeparator
    Set ws = ThisWorkbook.Worksheets("Base clients")
    strFilename = strPath & ws.Cells(4, 6).Value & " onboarding.xlsm"
    ws.Copy before:=Workbooks.Add.Worksheets(1)
    ActiveWorkbook.SaveAs strFilename, 52
End Sub

Super merci beaucoup ! Les 2 codes fonctionnent

Re,

Pense à clore le sujet !...

Rechercher des sujets similaires à "copier worksheet nouveau workbook"