Eclater un classeur excel en autant de fichiers que de feuilles

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 047 fois - Téléchargée 20 fois


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

Ajouter un commentaire

Commentaire

NHenry
Messages postés
14595
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 novembre 2019
137 -
Bonjour,

Ton code serait mieux sur www.codyx.org.

Je ne connaissait pas cette technique, merci pour cette découverte.

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.