Si vous utilisez un peu Excel, vous savez que vous pouvez obtenir des classeurs assez volumineux de collègues. Il est souvent souhaitable de décomposer le classeur afin que chaque feuille de calcul se trouve dans son propre classeur. Bien que cela puisse être fait manuellement, le processus devient rapidement fastidieux si vous avez beaucoup à faire.

Ce genre de travail répétitif est naturel pour une macro. La macro suivante, appelée BreakItUp, crée des fichiers de classeur individuels basés sur les feuilles de calcul du classeur actuel. Ainsi, si le classeur actuel contient 25 feuilles de calcul, l’exécution de cette macro entraîne la création de 25 fichiers de classeur Excel individuels. Chaque classeur a une seule feuille de calcul et le nom du classeur est le même que celui de la feuille de calcul.

Sub BreakItUp()

Dim sht As Worksheet     Dim NFName As String     Const WBPath = "C:\"



For Each sht In ActiveWorkbook.Worksheets         sht.Copy         NFName = WBPath & sht.Name & ".xls"

ActiveWorkbook.SaveAs FileName:=NFName, _             FileFormat:=xlNormal, CreateBackup:=False         ActiveWindow.Close     Next End Sub

La macro BreakItUp stocke les nouveaux classeurs dans le répertoire racine du lecteur C :. Si vous souhaitez que vos classeurs soient enregistrés à un autre endroit, vous pouvez simplement modifier la ligne dans laquelle la constante WBPath est créée.

Vous devez également savoir qu’il est relativement facile de planter cette macro. Par exemple, si vous utilisez un caractère dans un nom de feuille de calcul qui n’est pas «légal» pour un nom de fichier, la macro s’arrêtera brutalement lorsqu’elle essaiera de créer le fichier. Bien sûr, vous pouvez facilement apporter les modifications à la macro pour vérifier et remplacer ces caractères illégaux.

Un autre écueil potentiel de la macro est qu’elle s’arrêtera de s’exécuter s’il existe déjà un fichier portant le même nom qu’une feuille de calcul. Par exemple, supposons que vous ayez une feuille de calcul nommée MySheet1. S’il existe déjà un fichier sur le disque appelé MySheet1.xls, la macro s’arrêtera lorsqu’elle essaiera d’écraser le fichier. Vous pouvez contourner ce problème en vous assurant qu’il n’y a aucun conflit de nom de fichier dans le répertoire où les classeurs sont enregistrés.

Enfin, si votre classeur d’origine contient des formules qui font référence à d’autres feuilles de calcul (en plus de celle sur laquelle la formule se produit), ces formules ne fonctionneront pas dans les classeurs éclatés. Pour cette raison, vous voudrez vérifier attentivement ce qui est créé pour vous assurer que les classeurs répondent à vos besoins.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (12273) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Creating_Individual_Workbooks [Création de classeurs individuels].