Eclater un classeur excel en autant de fichiers que de feuilles

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 480 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

Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143
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.