Macro qui crée des fichiers selon les onglets

Bonjour,

J'ai un bug avec la macro suivante depuis que j'essais de l'appliquer à un document initial macro ???

J'ai tester en changeant l'extension mais rien n'y fait...

Sub saveOnglet()
Dim ws
Dim newWk As Workbook

    For Each ws In Worksheets
        Set newWk = Workbooks.Add(xlWBATWorksheet)
        ws.Copy newWk.Sheets(1)
        'newWk.SaveAs (ThisWorkbook.Path & "\" & ws.Name & ".xls")
        newWk.SaveAs (ThisWorkbook.Path & "\" & ws.Name & ".xlsm")
        newWk.Close
        Set newWk = Nothing
    Next ws

End Sub

Si quelqu'un voit une astuce ou un complément?

Cordialement,

Leakim

Bonsoir,

Le simple fait de copier ton onglet créé déjà un nouveau classeur.

Essaie en faisant tout simplement comme ceci :

Sub saveOnglet()
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ws.Name & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    ActiveWorkbook.Close
Next ws
End Sub

Bonne soirée

Bonjour cousinhub,

Merci pour ta proposition mais j'ai un bug aussi sur l'objet worksheet ???

Leakim

Re-,

Bizarre, chez moi, ça fonctionne...

Normalement, en prenant in worksheets au lieu de sheets (tout court), on ne prend que les onglets (et non les feuilles graphiques, qui elles, sont prises en compte dans le cas contraire....)

Tu aurais un fichier exemple qui reproduit ce bug?

???

Edit : tu n'aurais pas un nom d'onglet incluant un caractère "interdit" (style \, ......)?

Re,

Bonne pioche !!

C'est le nom des onglets qui bug. J'aurai pu y penser

Mes onglets sont créés avec une liste de nom de famille, et certains sont composés avec _____"-"_____

J'ai ôté le trait d'union et tout roule.

Merci pour ta clairvoyance.

Cordialement,

Leakim

Rechercher des sujets similaires à "macro qui cree fichiers onglets"