Macro pour créer un fichier par feuille

Résolu
totof -  
 totof -
Bonjour,

J'ai un fichier Excel comprenant plusieurs onglets.

Je souhaite pouvoir créer automatiquement (à partir d'un simple clic) un fichier Excel par onglet.

Dans l'idéal, chaque fichier créé porterait le nom de l'onglet contenu.

Merci de votre aide.
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    J'ai bien peur que ce ne soit un peu plus compliqué que l'explication de Psyk974,. :)
    >> Alt+F11 >> dans le menu >> Insertion >> Ajouter un module.
    C'est dans cette fenêtre que tu colle le code ci-dessous
    Sub TransposeDansClasseur()
    Dim Wko As Workbook
    Dim FL1 As Worksheet
    Dim NomA As String, NomN As String
    Dim Chemin As String, FS As Integer
        Chemin = ThisWorkbook.Path & Application.PathSeparator
        Set Wko = ActiveWorkbook
        Application.DisplayAlerts = False
        For Each FL1 In Wko.Worksheets
            NomN = FL1.Name
            Workbooks.Add
            NomA = ActiveWorkbook.Name
            FL1.Copy Before:=Workbooks(NomA).Sheets(1)
            For FS = Workbooks(NomA).Worksheets.Count To 2 Step -1
                Workbooks(NomA).Sheets(FS).Delete
            Next FS
            Workbooks(NomA).SaveAs Chemin & NomN
            Workbooks(NomN & ".xls").Close
        Next
        Application.DisplayAlerts = True
    End Sub

    Pour activer la macros.. Tu met le curseur DANS la macros et tu tape F8 pour du pas à pas et suivre les instructions une à une ou F5 pour faire fonctionner la macros.
    Tu dis...
    A+

    1
  2. Psyk974 Messages postés 559 Statut Membre 51
     
    Bonjour,

    Déjà il te faut parcourir tous tes onglets.

    Dim i
    For i= 1 To Worksheets.Count
         'Ton code
    Next


    Ensuite il faut que tu génères un classeur par onglet ce qui donne

    Dim i as integer
    Dim Wbk as workbook
    NomOnglet as string
    
    For i= 1 To Worksheets.Count
        Set Wbk = Workbooks.Add
        NomOnglet = Worsheets(i).Name
        wbk.saveas NomOnglet
    Next
    0
  3. totof
     
    Merci pour ton aide Psyk.

    Ayant des notions trés limitées en VBA, pourrais-tu me guider un peu plus pour créer cette macro ?
    (Où dois-je écrire ce code ? Dois-je le copier tel quel ?).
    0
  4. totof
     
    Bonjour et merci lermite222.

    J'ai testé ta procédure et ton code et c'est excatement ce que je souhaitais.

    Cependant, est-il possible de maitriser le dossier dans lesquel sont placés les fichiers créés ?
    Avec ta macro, je les retrouve dans D:\
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Mais oui,
    modifier...
        Chemin = ThisWorkbook.Path & Application.PathSeparator

    par..
        Chemin = "C:\Répertoir\sousRépertoire\

    Pas oublier le slach inverse en bout de chemin.
    A+
    0
  7. totof
     
    Merci beaucoup pour votre aide.

    Bonne continuation.
    0