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.
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.