Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

bast0504

XLDnaute Occasionnel
Bonjour

Existerait il une macro qui exporterait tous les onglets d'un classeur dans des feuilles à part ? (Onglet 1 dans une feuille, onglet 2 dans une feuille ....)

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour,

regarde peut être le code ci-dessous, fera une copie de chaque feuille du classeur actif, ce qui donnera autant de classeur... A voir si c'est cela que tu veux... sans plus de détails ....
Code:
Option Explicit
Sub test()
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Copy
Next ws
End Sub

bon après midi
@+
 

bast0504

XLDnaute Occasionnel
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour Pierrot

La macro fonctionne à merveille mais deux remarques:
- Les onglets perdent leurs titres et son renommé classeur
- les macros pré-enregistrées affectées aux onglets disparaissent,

comment remédier à ces problèmes

Merci encore
 

bast0504

XLDnaute Occasionnel
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Re,

Ce que j’appelle le titre d'un onglet c'est le nom que je lui donne, effectivement tu as raison le nom donné précédemment à l'onglet est recopié, je pensais qui pouvais le donner aussi comme titre à mon classeur.(le code je l'ai mis dans This workbook au lieu de module)

Comment remédier sinon à mon problème de classeur ?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Re,

regarde ceci, pour un enregistrement dans le répertoire courant :
Code:
Option Explicit
Sub test()
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs ActiveSheet.Name
Next ws
End Sub
 

bast0504

XLDnaute Occasionnel
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour

Merci pierrot pour ta réponse

Comment je pourrais conserver lors de mon export les codes utilisés par mon onglet comme celui afférent à mon bouton, car les macros pré-enregistrées affectées aux onglets disparaissent lors de l'export ?

Merci
 

job75

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour bast0504, salut Pierrot :)

Pour tester le fichier joint, le télécharger d'abord (sur le bureau).

Voyez cette macro dans Module1 (Alt+F11) :

Code:
Sub CreerFichiers()
Dim chemin$, w As Workbook, s As Object
chemin = ThisWorkbook.Path & "\" 'à adapter
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
'---fermeture des fichiers ouverts---
For Each w In Workbooks
  If w.Name <> ThisWorkbook.Name Then w.Close
Next
'---création des fichiers---
For Each s In Sheets
  ThisWorkbook.SaveAs chemin & s.Name, ThisWorkbook.FileFormat
Next
'---supression des feuilles---
For Each w In Workbooks
  For Each s In w.Sheets
    If Not w.Name Like s.Name & ".xls*" Then s.Delete
  Next
  w.Save
  If w.Name <> ThisWorkbook.Name Then w.Close 'fermeture
Next
Application.Quit 'fermeture d'Excel
End Sub
Module1 et ses macros se retrouvent dans les fichiers créés.

C'est de l'artillerie lourde :rolleyes:

A+
 

Pièces jointes

  • Créer fichiers(1).xls
    38 KB · Affichages: 66
  • Créer fichiers(1).xls
    38 KB · Affichages: 70
  • Créer fichiers(1).xls
    38 KB · Affichages: 73
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Re,

Au temps pour moi, j'avais oublié de rouvrir les fichiers créés :

Code:
'---réouverture des fichiers---
For Each s In Sheets
  If Not ThisWorkbook.Name Like s.Name & ".xls*" Then _
    Workbooks.Open chemin & s.Name & _
    Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, "."))
Next
C'est bien laborieux, et l'exécution est bien longue...

Fichier (2).

A+
 

Pièces jointes

  • Créer fichiers(2).xls
    40 KB · Affichages: 70
  • Créer fichiers(2).xls
    40 KB · Affichages: 74
  • Créer fichiers(2).xls
    40 KB · Affichages: 69

bast0504

XLDnaute Occasionnel
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonsoir

Par inattention j'ai exécuté la macro sans spécifié le lieu d'enregistrement des fichiers, dans cas où les fichiers s'enregistrent t ils pas défaut ?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour bast, Job:)

Par inattention j'ai exécuté la macro sans spécifié le lieu d'enregistrement des fichiers, dans cas où les fichiers s'enregistrent t ils pas défaut ?

dans ce cas l'enregistrement est fait dans le répertoire courant.... (celui où tu accèdes quand tu fais "ouvrir" ou "enregistrer sous"

bonne journée
@+
 

job75

XLDnaute Barbatruc
Re : Macro pour exporter chaque onglet d'un classeur dans des feuilles isolées

Bonjour le fil, le forum,

Sur Excel 2010 et avec un fichier .xlsm ma macro plantait Excel.

Je découvre qu'il faut alors activer chaque fichier avant de supprimer les feuilles :

Code:
Sub CreerFichiers()
Dim chemin$, exten$, w As Workbook, s As Object
chemin = ThisWorkbook.Path & "\" 'à adapter
exten = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, "."))
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'si caractères interdits pour les noms de fichiers
'---fermeture des fichiers ouverts---
For Each w In Workbooks
  If w.Name <> ThisWorkbook.Name Then w.Close
Next
'---création des fichiers---
For Each s In Sheets
    s.Visible = True 'sécurité
    ThisWorkbook.SaveAs chemin & s.Name, ThisWorkbook.FileFormat
Next
'---réouverture des fichiers---
For Each s In Sheets
  If ThisWorkbook.Name <> s.Name & exten Then _
    Workbooks.Open chemin & s.Name & exten
Next
'---supression des feuilles---
For Each w In Workbooks
  w.Activate 'pour Excel 2010
  For Each s In w.Sheets
    If w.Name <> s.Name & exten Then s.Delete
  Next
  w.Save
  If w.Name <> ThisWorkbook.Name Then w.Close 'fermeture
Next
Application.Quit 'fermeture d'Excel
End Sub
Fichiers .xls et .xlsm joints.

A+
 

Pièces jointes

  • Créer fichiers(3).xls
    48.5 KB · Affichages: 79
  • Créer fichiers(3).xls
    48.5 KB · Affichages: 88
  • Créer fichiers(3).xls
    48.5 KB · Affichages: 83
  • Créer fichiers(3).xlsm
    26.7 KB · Affichages: 72

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 915
Membres
103 037
dernier inscrit
Alves AGBO