Vous travaillez sur un classeur Excel, et vous constatez que vous avez ENORMEMENT de styles qui ne servent à rien. Cet article va vous montrer comment les supprimer TOUS, en quelques étapes.
Attention, nous allons bidouiller dans les lignes de code d'un classeur Excel.
Origine du problème
Ce problème est de moins en moins fréquent. En fait, sur les vieux classeurs (avec Excel 2013), quand vous recopiez une feuille vers un autre classeur, vous recopiez aussi tous les styles. C'est pourquoi, il n'était pas rare de se retrouver dans une situation similaire à celle-ci, avec plein de styles inutiles.
Vous pouvez supprimer chaque style un par un en faisant un clic-droit, mais c'est une perte de temps. Mais si le nombre de styles est très important, il existe une technique pour les supprimer tous en travaillant au niveau du fichier xml d'Excel.
Mise en garde
La technique ici va consister à éditer et modifier le fichier XML du classeur Excel. Si la moindre erreur de caractère est effectuée, le classeur sera corrompu et vos données seront perdues.
Faîtes donc très attention aux modifications que vous allez effectuer
Méthode pour supprimer tous les styles de cellules
- Dupliquez le classeur dans lequel vous souhaitez supprimer tous les styles de cellules personnalisées.
- Renommer l'extension de la sauvegarde en .zip
- Double-cliquez sur le fichier zipper pour ouvrir toute l'architecture XML du fichier.
- Dans le répertoire xl, copiez le fichier styles.xml et collez le dans un répertoire séparer ou sur le bureau
- Ouvrez le fichier dans un éditeur de texte (ici Notepad++) avec son l'extension XML Tool et cliquer sur "Pretty print" pour retrouver une belle indentation du fichier XML (merci à Xavier en commentaire pour cet ajout)
- Recherchez la balise cellStyles. Notez au passage le nombre de styles de cellules que votre classeur contient (ici 70 styles personnalisés)
- Supprimez toutes les lignes entre les balises <cellStyles> et </cellStyles>, y compris les balises
- Sauvegardez le fichier styles.xml
- Ré-importez le fichier styles.xml dans le fichier zipper et bien sûr dans le même répertoire ; le répertoire xl
- Changez l'extension du fichier zip en xlsx (l'inverse de l'étape 2)
- Ouvrez le fichier et tous les styles de cellules personnalisées ont été supprimés 😀👍
D'où viennent ces styles ?
En fait, on retrouve ce genre de problème avec des classeurs créés avec l'extension xls. Et ce cas arrive plus souvent qu'il n'y paraît.
- Au moment de la conversion d'un fichier xls vers un fichier xlsx, les cellules avec des styles particuliers ont été converties en style de cellules personnalisées.
- Ces styles sont automatiquement importés dans un classeur quand une feuille de calcul est importée depuis un autre classeur avant Excel 2013.
Laurent
15/07/2024 @ 16:15
Bonjour,
J'ai un fichier avec énormément de styles importés.
J'ai essayé votre méthode mais j’ai un souci car l'éditeur xml ne me montre que deux lignes (dont une fait plus de 10 millions de caractères ...).
Je n'arrive pas à ouvrir la même présentation que dans votre exemple dans notepad ++
J'avoue être nul en "xml". Y a t'il une façon d'avoir la même présentation ?
Frédéric LE GUEN
15/07/2024 @ 16:28
J'avoue que la technique est "complexe". Si vous voulez, je m'en occupe mais ça sera facturée par ma société.
Xavier
23/08/2024 @ 10:44
Dans notepad++ il suffit d'aller dans le menu Modules d'extension/XML Tools et cliquer sur "Pretty print" pour retrouver une belle indentation du fichier XML
Hajer
20/12/2022 @ 09:39
Bonjour,
L’extraction du rapport sort avec le message d’erreurs et format différent du rapport habituel.
"fonction supprimée: format dans la partie /xl/styles.xml (styles)"
Ce problème ne se reproduit que pour certains utilisateurs, d'autres non (même si les utilisateurs ont la même version et les mêmes plugins Excel).
Avez-vous svp une idée sur ce sujet?
Frédéric LE GUEN
20/12/2022 @ 10:46
Non, pas la moindre idée
Emile
28/10/2021 @ 16:50
Bonjour,
ou alors, en VBA 🙂
Sub SupprStyles()
Dim St As Style
For Each St In ActiveWorkbook.Styles
If Not St.BuiltIn Then St.Delete
Next St
End Sub
Frédéric LE GUEN
28/10/2021 @ 17:36
Moouuui ... C'est exact mais ça nécessite que l'utilisateur connaisse déjà l'interface de l'éditeur VBA (et je peux vous assurer que ce n'est pas le cas de tout le monde)
Emile
28/10/2021 @ 17:51
C'est clair, mais c'était très court à écrire alors je n'ai pas pu résister 🙂
trés bon site sur Excel, merci pour ces astuces !
RPM
06/05/2021 @ 11:01
Merci je vous dois une fière chandelle ; j'avais commencé à enlever les styles 1 par 1... en consultant le xml, j'ai vu qu'il y en avait 15020
🙂
Frédéric LE GUEN
06/05/2021 @ 11:19
Content que ça vous ai aidé. Ce n'est évidemment pas l'article le plus populaire de mon blog vu sa complexité technique, mais face à ce genre de situation, j'ai bien été obligé d'expliquer l'astuce pour nettoyer complètement un fichier de ses styles.