Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment exporter et enregistrer chaque feuille de calcul en tant que nouveau classeur séparé dans Excel?

Supposons que vous souhaitiez exporter et enregistrer une ou plusieurs feuilles de calcul en tant que nouveau classeur, comment allez-vous le gérer? Normalement, vous pouvez copier chaque feuille de calcul et la coller dans un nouveau classeur. Mais ici, nous vous apportons quelques astuces pratiques pour y faire face:

Exporter et enregistrer des feuilles de calcul en tant que nouveau classeur avec la commande Déplacer ou Copier

Exporter et enregistrer les feuilles de calcul en tant que nouveau classeur avec le code VBA

Exportez et enregistrez des feuilles de calcul en tant que nouveau classeur avec Kutools for Excel bonne idée3


flèche bleue bulle droite Exporter et enregistrer des feuilles de calcul en tant que nouveau classeur avec la commande Déplacer ou Copier

En utilisant l' Déplacer ou copier La commande vous aidera à exporter ou à copier rapidement une ou plusieurs feuilles de calcul dans un nouveau classeur.

Étape 1: Sélectionnez les noms de feuille de calcul dans la barre d'onglets. Vous pouvez en sélectionner plusieurs en maintenant Ctrl clé ou décalage clé.

Étape 2: cliquez avec le bouton droit sur le nom de la feuille de calcul, puis cliquez sur le Déplacer ou copier depuis le menu contextuel.
feuilles d'exportation doc 1

Étape 3: Dans Déplacer ou copier boîte de dialogue, sélectionnez le (nouveau livre) élément de la liste déroulante de Déplacer les feuilles sélectionnées vers le livre.

feuilles d'exportation doc 2

Étape 4: Cliquez ensuite sur OK, maintenant vous êtes passé au nouveau classeur avec les feuilles de calcul exportées ou copiées, cliquez sur Déposez le > Sauvez pour enregistrer le nouveau classeur.

A Noter: Dans le Déplacer ou copier boîte de dialogue, il y a une Créer une copie option. Si vous ne le cochez pas, il déplacera les feuilles de calcul sélectionnées hors du classeur d'origine; si cochez, il copiera les feuilles de calcul sélectionnées.


Divisez rapidement plusieurs feuilles de calcul dans un classeur distinct dans Excel

Dans Microsoft Excel, vous pouvez enregistrer ou fractionner une feuille de calcul d'un classeur en tant que nouveau fichier Excel en copiant et en collant cette feuille de calcul dans un nouveau classeur. Cela semble gênant, si vous souhaitez diviser chaque feuille / feuille de calcul d'un grand classeur en fichiers Excel, txt, csv, pdf séparés. Mais avec Kutools pour Excel's Classeur fractionné utilitaire, vous pouvez y faire face rapidement.  Cliquez pour un essai gratuit de 30 jours avec toutes les fonctionnalités!
doc split classeur 1
 
Kutools for Excel: avec plus de 300 compléments Excel pratiques, essayez gratuitement sans limitation en 30 jours.

flèche bleue bulle droite Exporter et enregistrer les feuilles de calcul en tant que nouveau classeur avec le code VBA

Ce code suivant exportera chaque feuille de calcul visible dans un nouveau classeur et enregistrera le classeur avec le nom de la feuille d'origine dans un dossier nouvellement créé dans le même chemin que le classeur actif. Veuillez suivre les étapes suivantes:

Étape 1: maintenez la touche ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

Étape 2: cliquez sur insérer > Moduleet collez la macro suivante dans la fenêtre Module:

VBA: exportez et enregistrez les feuilles de calcul en tant que nouveau classeur dans un nouveau dossier.

Sub SplitWorkbook()
'Updateby20200806
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim xWs As Worksheet
Dim xWb As Workbook
Dim xNWb As Workbook
Dim FolderName As String
Application.ScreenUpdating = False
Set xWb = Application.ThisWorkbook

DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")
FolderName = xWb.Path & "\" & xWb.Name & " " & DateString

If Val(Application.Version) < 12 Then
    FileExtStr = ".xls": FileFormatNum = -4143
Else
    Select Case xWb.FileFormat
        Case 51:
            FileExtStr = ".xlsx": FileFormatNum = 51
        Case 52:
            If Application.ActiveWorkbook.HasVBProject Then
                FileExtStr = ".xlsm": FileFormatNum = 52
            Else
                FileExtStr = ".xlsx": FileFormatNum = 51
            End If
        Case 56:
            FileExtStr = ".xls": FileFormatNum = 56
        Case Else:
            FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
End If

MkDir FolderName

For Each xWs In xWb.Worksheets
On Error GoTo NErro
    If xWs.Visible = xlSheetVisible Then
    xWs.Select
    xWs.Copy
    xFile = FolderName & "\" & xWs.Name & FileExtStr
    Set xNWb = Application.Workbooks.Item(Application.Workbooks.Count)
    xNWb.SaveAs xFile, FileFormat:=FileFormatNum
    xNWb.Close False, xFile
    End If
NErro:
    xWb.Activate
Next

    MsgBox "You can find the files in " & FolderName
    Application.ScreenUpdating = True
End Sub

Étape 3: appuyez sur le F5 clé pour exécuter ce code. Et une boîte de dialogue apparaîtra pour vous indiquer l'emplacement des nouveaux classeurs exportés, et toutes les feuilles de calcul du classeur d'origine ont été exportées vers de nouveaux classeurs distincts qui ont nommé les feuilles d'origine dans un nouveau dossier spécifique. Voir les captures d'écran:

feuilles d'exportation doc 7

flèche bleue bulle droite Exportez et enregistrez des feuilles de calcul en tant que nouveau classeur avec Kutools for Excel

Si plusieurs feuilles de calcul doivent être enregistrées en tant que classeur distinct, la première méthode ne peut pas être un bon choix. Et le code VBA peut-être un peu compliqué pour les débutants Excel. Ici, vous pouvez utiliser le Classeur fractionné utilité de Kutools pour Excel pour exporter et enregistrer rapidement et facilement chaque feuille de calcul d'un classeur pour séparer le nouveau classeur.

Kutools pour Excel, avec plus de 300 fonctions pratiques, rend vos travaux plus faciles. 

Après installation gratuite Kutools for Excel, procédez comme suit:

Étape 1: cliquez sur Kutools Plus > Classeur > Classeur fractionné…. Voir la capture d'écran:
feuilles d'exportation doc 3

Étape 2: dans le Classeur fractionné boîte de dialogue, procédez comme ci-dessous:

feuilles d'exportation doc 4
1: tous les noms de feuille de calcul ont été cochés par défaut, si vous ne souhaitez pas diviser certaines des feuilles de calcul, vous pouvez les décocher;


2: Si vous souhaitez éviter de fractionner les feuilles de calcul masquées ou vierges, vous pouvez vérifier Ignorer les feuilles de calcul masquées or Ignorer les feuilles de calcul vierges.);


3: et vous pouvez aussi vérifier Spécifiez enregistrer format, et pour sélectionner diviser les feuilles, puis enregistrer en tant que fichier texte, fichier pdf ou fichier csv, par défaut, si vous ne cochez pas cette option, il divisera les feuilles et l'enregistrera en tant que classeur.

Étape 3: Cliquez ensuite sur Divisé et choisissez le dossier dans lequel vous souhaitez placer les nouveaux classeurs. Voir la capture d'écran:
feuilles d'exportation doc 6

Étape 4: puis cliquez sur OK, puis chaque feuille de calcul cochée dans le Classeur fractionné La boîte de dialogue est exportée et enregistrée en tant que classeur individuel. Chaque nouveau classeur est nommé avec le nom de la feuille de calcul d'origine. Voir la capture d'écran:
feuilles d'exportation doc 5

Cliquez pour en savoir plus sur cet outil de classeur fractionné.

flèche bleue bulle droite Exporter et enregistrer chaque feuille en tant que nouveau classeur


Divisez rapidement les données en plusieurs feuilles de calcul en fonction d'une colonne ou de lignes fixes dans Excel

En supposant que vous ayez une feuille de calcul contenant des données dans les colonnes A à G, le nom du vendeur est dans la colonne A et vous devez automatiquement diviser ces données en plusieurs feuilles de calcul en fonction de la colonne A du même classeur et chaque vendeur sera divisé en un nouveau feuille de travail. Kutools pour Excel's Date de fractionnement L'utilitaire peut vous aider à diviser rapidement les données en plusieurs feuilles de calcul en fonction de la colonne sélectionnée, comme illustré ci-dessous dans Excel.  Cliquez pour un essai gratuit complet de 30 jours!
doc diviser les données 2
 
Kutools for Excel: avec plus de 300 compléments Excel pratiques, essayez gratuitement sans limitation en 30 jours.

Articles Liés:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    mbtedrick@aol.com · 1 months ago
    I have been using this VBA Code for some time and it worked like a charm until I changed computers.  I have the same version of excel but now I am getting a Run Time Error "76" Path Not found.  Any ideas what could be causing this?  It looks like it is hanging up at MkDir.  Any help you can provide is appreciated.
  • To post as a guest, your comment is unpublished.
    Lisa · 2 months ago
    You are amazing! Thank you so very much!
  • To post as a guest, your comment is unpublished.
    Nadine · 7 months ago
    Thank you so much ! great and useful.
  • To post as a guest, your comment is unpublished.
    Sameer Kuppanath · 10 months ago
    For Each xWs In xWb.Worksheets

    How to do export only selected / grouped sheets to separate excel sheets by using this code.?
  • To post as a guest, your comment is unpublished.
    Issybeee · 1 years ago
    Hi there,

    Keep getting a pop up that says 'compile error, invalid outside procedure' when i try and run the code. Any thoughts? Thanks for all your help.
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Hi, Issybeee, I have update the VBA code in the tutorial, you can try the new one again.
  • To post as a guest, your comment is unpublished.
    Tobias vP · 1 years ago
    For those of you who save macros in your "Personal.XLSB" or XLSTART (I see more questions below related to this), change the line

    Set xWb = Application.ThisWorkbook to

    Set xWB = ActiveWorkbook

    That will make the macro run from the Active Workbook instead and save in a subfolder to that.

  • To post as a guest, your comment is unpublished.
    Diego · 1 years ago
    With the first method, if I hit F5, it opens a pop up window with the function "Go to". My excel is in spanish, im not sure if that is a factor. Any idea on how to fix it?
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      You can directly click the Run button of the Microsoft Visual Basic for Applications window.
  • To post as a guest, your comment is unpublished.
    kerstin · 2 years ago
    Un aporte realmente útil. He probado el módulo con código VBA y funciona a la perfección. Muchas gracias, me has salvado una tarea que me hubiera llevado mucho tiempo con el mover y copiar.
  • To post as a guest, your comment is unpublished.
    SS · 2 years ago
    This is a fantastic piece of work, thanks a lot.
    Do we have any option to select only specific columns in a worksheet to be exported?
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Hi, SS, if you want to export a specific selection as a individual file, this article can help you https://www.extendoffice.com/documents/excel/626-excel-save-selection.html
  • To post as a guest, your comment is unpublished.
    JR · 2 years ago
    For anybody who finds the VBA code is not running as expected, try to change Line 9 to "Set xWb = Application.ActiveWorkbook"

    Otherwise, fantastic! Does exactly as described, and runs fairly quickly
  • To post as a guest, your comment is unpublished.
    Vinod Pingale · 2 years ago
    very nice.... Thanks
  • To post as a guest, your comment is unpublished.
    PK · 2 years ago
    How to convert this macro so that I can save it in my personal workbook and can use to where ever I need it.
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Click Developer tab > Record Macro > select Personal Macro Workbook, and give the vba a name.
      Then in Microsoft Visual Basic for Applications window, click VBAProject(PERSONA_XLSB) > Modules > double click Module1, paste the code between Sub() and End Sub, save the code.
      When you want to use the code, click Developer > Macro, choose the code you name.
      • To post as a guest, your comment is unpublished.
        brahim · 1 years ago
        xWs.Copy this methode give me an erreor 1004
  • To post as a guest, your comment is unpublished.
    Sergii · 2 years ago
    February 2019 - after some update Excel silently exits macro right after Application.ActiveWorkbook.SaveAs
    It means, that commands Application.ActiveWorkbook.Close does not run and file stays opened... Could it be fixed? This happened all the machines in our office on several workbooks that were using such kind of Macro.
  • To post as a guest, your comment is unpublished.
    Jenne · 3 years ago
    Do you have the formula to make sure that each excel sheet when saved as a new work book is in total format Comma Delimited .CSV
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Sorry, I have no idea,neither.
  • To post as a guest, your comment is unpublished.
    Jenne · 3 years ago
    Love this and another info you have on splitting data into each worksheet. However I keep getting an error when trying to upload my single reports into my system

    I needed them as a csv file so just changed the last part of the module to .csv I am wondering if I missed something else that should've been changed.

    Thanks a million
  • To post as a guest, your comment is unpublished.
    Ananda · 3 years ago
    what is the use of Worksheet.Save??
    • To post as a guest, your comment is unpublished.
      erick · 3 years ago
      to save the changes made
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      What? I do not understand.
  • To post as a guest, your comment is unpublished.
    Eunice · 3 years ago
    Hi Sunny,

    Thank you for sharing this code!

    I keep getting this error "Compile Error: Wrong number of arguments or invalid property assignment" at the "format" portion of the following string:

    DateString = format(Now, "yyyy-mm-dd hh-mm-ss")
  • To post as a guest, your comment is unpublished.
    Borges · 3 years ago
    Hi, I use this VBA code all the time to separate commission statements into individual spreadsheets. Is it possible to add a line to the code so it will automatically email the report to each person using outlook?
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Soryy I did not know a code can do that, but you can split the workbook first, then apply Kutools for Excel's Create Mailing List and Send Emails utilities to create a mailing list, and then send the reports as attachments to each person. For more detail, please go to visit this article https://www.extendoffice.com/product/kutools-for-excel/excel-create-mailing-list-and-send-email.html
  • To post as a guest, your comment is unpublished.
    dilshadrana46@gmail.com · 3 years ago
    i cant find enterprise toolbar kindly help me
  • To post as a guest, your comment is unpublished.
    dilshadrana46@gmail.com · 3 years ago
    this code cahnge dates in my sheets
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      What dates have been changed? The modified dates? The Enterprise tab will be appeared after installing Kutools for Excel.
  • To post as a guest, your comment is unpublished.
    Isuru · 4 years ago
    xWs.Copy line comes up with an error in my case with 2016 "Method 'Copy of object'_Worksheet' failed.
    Please suggest me a correction if possible.
    • To post as a guest, your comment is unpublished.
      Sunny · 4 years ago
      Sorry, I have no idea about your problem.
  • To post as a guest, your comment is unpublished.
    Peggy · 4 years ago
    Hi,


    its totally work with the excel 2010.


    however, after i upgraded to Excel 2016, the code doesn't work.


    would you please advise which part should i be revised?
    • To post as a guest, your comment is unpublished.
      Sunny · 4 years ago
      Excuse me, which method you cannot use in Excel 2016? In my condition, all of the methods above do work in Excel 2016 perfectly
  • To post as a guest, your comment is unpublished.
    Omeir · 4 years ago
    Hi the second method worked great. Thank you. I have one question. This method saves each worksheet as a new workbook based on the name of the sheet. Is there anyway to add to the name, for example sheets have a variable name which is currently being saved. Can I add January 2017 or Feb 2017 to the files saved?
    • To post as a guest, your comment is unpublished.
      Sunny · 4 years ago
      Thanks for your leaving message, you can apply Kutools for Excel's Rename Multiple Worksheets to rename every sheets of the workbook firstly, then use one of above methods to export or save the sheets separately as workbook. If you want to know more detail on Rename Multiple Worksheet utility, please visit this:https://www.extendoffice.com/product/kutools-for-excel/batch-rename-excel-worksheets.html
  • To post as a guest, your comment is unpublished.
    Sarfraz · 4 years ago
    Is there a way to change this macro so I can save it in a file in the XLSTART folder but it will run for the active workbook? Everytime I save it in the XLSTART workbook it fails at the DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")line.

    Thanks!
    Sarfraz
  • To post as a guest, your comment is unpublished.
    Aung · 4 years ago
    This is exactly what I needed! Awesome!
  • To post as a guest, your comment is unpublished.
    Rae · 4 years ago
    Hi. I received an error code that says "Compile error: Invalid outside procedure"...help!
  • To post as a guest, your comment is unpublished.
    DAS · 4 years ago
    Your code worked for me... Thanks much!!!
  • To post as a guest, your comment is unpublished.
    Richard · 4 years ago
    Can we also export ALL (300+) sheets to html,
    this will help me a lot, the export to unified text is already helping but I need them in html, or no table borders for the cell differences
  • To post as a guest, your comment is unpublished.
    Madhav Mehendale · 5 years ago
    Out of the above three methods, I found the first method to be quite good having regard to the fact that I am a beginner & my work is not at all of the same magnitude like professionals. My sincere thanks for explaining the steps in simple and lucid manner.
  • To post as a guest, your comment is unpublished.
    Beth G · 5 years ago
    Run time error Method 'Copy of Object' worksheet' failed
  • To post as a guest, your comment is unpublished.
    Beth G · 5 years ago
    xWs.Copy -it is an error in my part what does it mean?
  • To post as a guest, your comment is unpublished.
    Louise · 5 years ago
    Great article - VBA worked first time - perfect
  • To post as a guest, your comment is unpublished.
    Charlie Clarke · 6 years ago
    Unfortunately the VBA code didn't work for me. I had to debug and the issue is with the line:
    Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum

    Any ideas why it didn't work for me?
  • To post as a guest, your comment is unpublished.
    JoaoM · 6 years ago
    Muy buena la aplicacion.

    Es una pena no existir tambien en Español.

    Gracias
  • To post as a guest, your comment is unpublished.
    AC · 6 years ago
    Very Useful thanks! Loved the VBA Code
  • To post as a guest, your comment is unpublished.
    fauzan · 6 years ago
    thank. terimakasih. ini code yang saya butuhkan
  • To post as a guest, your comment is unpublished.
    farfan · 7 years ago
    The VBA codes works like magic, but is there a way for this to be done using VBScript? I'm going nuts trying to meet the requirement from my supervisor.
  • To post as a guest, your comment is unpublished.
    Chris · 7 years ago
    this code is perfect for what i need,
    but could you show code for the exact same process for one sheet rather than the entire workbook?
  • To post as a guest, your comment is unpublished.
    Sam · 7 years ago
    The code is failing at sh.Copy and I cannot figure out why. Any Ideas?
  • To post as a guest, your comment is unpublished.
    Votefor Pedro · 7 years ago
    Thank you. This is esactly what I needed.
  • To post as a guest, your comment is unpublished.
    Phani · 7 years ago
    Hi All,
    Can someone help me on below.
    I need VBA code that can copy only all visible sheets to new workbook and it should not copy macro code to new workbook, save new workbook on desktop with two different cell values in sheet and sheet name as a file name and close the master workbook without saving.
  • To post as a guest, your comment is unpublished.
    Keith · 7 years ago
    Is there a way to change this macro so I can save it in a file in the XLSTART folder but it will run for the active workbook? Everytime I save it in the XLSTART workbook it fails at the DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")line.

    Thanks!
    Keith
  • To post as a guest, your comment is unpublished.
    Rajesh Jayagopi · 7 years ago
    Thanks a lot. Good Job!.
  • To post as a guest, your comment is unpublished.
    Sean · 7 years ago
    Hello I like the code
    Is it possible to just save the new workbook without the date information That is so when I resave the sheets in the previous workbook I will have the option to overwrite the changes rather than create another dated folder? Also but not so important how could I use another name and destination for the destination folder
    Regards
    Sean
  • To post as a guest, your comment is unpublished.
    Nasser · 7 years ago
    thanks alot, works very well and easy.