Eclater un classeur excel en autant de fichiers que de feuilles


Contenu du snippet

Cette procédure éclate le classeur actif en plusieurs fichiers (ou classeurs selon la terminologie excel), 1 fichier par feuille

Source / Exemple :


'Cette procédure éclate le classeur actif en plusieurs fichiers, 1 par feuille
Sub EclateClasseur()
Dim Feuille As Worksheet
Dim Classeur As Workbook
Dim Chemin As String

Chemin = InputBox("Quel répertoire pour la sauvegarde ?", "Donnez un chemin", ActiveWorkbook.Path) 'Par défaut le chemin est celui classeur actif

If Chemin = "" Then Exit Sub 'Le chemin est vide, le bouton annuler a dû être cliqué

Application.ScreenUpdating = False 'Arrêt de la mise à jour de l'écran

For Each Feuille In ActiveWorkbook.Sheets
    Feuille.Copy 'Copie de la feuille
    ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Feuille.Name + ".xls" 'Enregistrement de la feuille dans un classeur/Fihcier
    ActiveWorkbook.Close 'Le nouveau classeur/fichier est devenu le classeur actif donc fermeture du classeur actif
Next

Application.ScreenUpdating = True 'Redémarrage de la mise à jour de l'écran

End Sub

Conclusion :


Limitations connues :
- il n'y a aucun contrôle sur les noms de fichiers
- cliquer sur annuler dans la boite de dialogue signalant l'existence du fichier plante la procédure.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.