Macro pour créer un fichier par feuille

Résolu/Fermé
totof - 23 févr. 2009 à 11:34
 totof - 24 févr. 2009 à 08:36
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.
A voir également:

6 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 févr. 2009 à 14:37
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
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 11:58
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 févr. 2009 à 16:45
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
Merci beaucoup pour votre aide.

Bonne continuation.
0