Impossible de supprimer des styles.

dionys0s

XLDnaute Impliqué
Bonjour le forum

J'utilise un classeur qui se trimbale plus de 1000 styles.
Donc histoire de faire le ménage, j'utilise ce petit bout de code tout simple (qui je pensais ferait l'affaire) :

VB:
Sub SupprimerLesStyles()

    Dim Styl As Style

    'On Error Resume Next

    For Each Styl In ThisWorkbook.Styles
        Styl.Delete
    Next Styl

End Sub

Il supprime presque tous les styles. Il supprime tous les styles par défaut, sauf le style "Normal" (logique), et il y a deux autres styles qu'il refuse de supprimer (il affiche le message d'erreur suivant : "Erreur d'exécution 1004 : la méthode "Delete" de l'objet "Style" a échoué"). Impossible de les supprimer manuellement non plus.

Donc à l'arrivée, il me reste 3 styles, dont 2 indésirables. Y a-t-il un moyen de forcer la suppression de ces 2 styles, ou de remédier à ce problème ?

D'avance merci pour votre aide :cool:
 

dionys0s

XLDnaute Impliqué
Re : Impossible de supprimer des styles.

Re tout le monde

alors je ne trouve toujours pas.

Je joins un fichier avec juste une feuille vierge et 3 boutons pour trois macros :
* Une macro qui renseigne le nombre de styles
* Une macro pour obtenir les noms
* Une macro pour les supprimer

Voilà... A l'ouverture du classeur, tous les styles par défaut se chargent (une quarantaine) + les 2 qui vont partout, et impossible de les supprimer.

Si lorsque vous exécutez ces macros, il ne vous reste qu'un seul style, alors je n'y comprendrai plus rien. Mais si ça fait comme chez moi et que vous trouvez une solution, alors je suis preneur ^^

D'avance merci pour votre aide.
 

Pièces jointes

  • Nom de style.xlsm
    53.7 KB · Affichages: 107

dionys0s

XLDnaute Impliqué
Re : Impossible de supprimer des styles.

Bonjour Chris

Non ils ne sont pas présents sur les classeurs par défaut. Les styles par défaut sur mon ordi sont au nombre de 42 :
20*% - Accent1
20*% - Accent2
20*% - Accent3
20*% - Accent4
20*% - Accent5
20*% - Accent6
40*% - Accent1
40*% - Accent2
40*% - Accent3
40*% - Accent4
40*% - Accent5
40*% - Accent6
60*% - Accent1
60*% - Accent2
60*% - Accent3
60*% - Accent4
60*% - Accent5
60*% - Accent6
Accent1
Accent2
Accent3
Accent4
Accent5
Accent6
Warning Text
Good
Calculation
Linked Cell
Input
Bad
Neutral
Normal
Note
Output
Explanatory Text
Title
Titre 1
Titre 2
Titre 3
Titre 4
Total
Check Cell

Lorsque je lance ma macro de suppression, il ne reste que le style "Normal".

Mais sur mes classeurs "vérolés", il en reste toujours 3, donc le "Normal" et les 2 autres... Incompréhensible.
 

chris

XLDnaute Barbatruc
Re : Impossible de supprimer des styles.

Re

Même manuellement on ne peut les supprimer.

Il me semble que j'ai eu ce problème une fois mais sur un style quelconque.

Je pense qu'il s'agit des 2 styles liens hypertextes qui ont été utilisés dans un classeur nommé reporting dont des données ont été importées dans ton fameux classeur.

Quand on copie des données d'une classeur fait avec une version Excel dans un classeur fait avec une autre version, les styles standard utilisés se dupliquent avec un tiret et le nom de la source. En général on peut les supprimer manuellement ou par VBA mais il peut y avoir des couacs...
 

chris

XLDnaute Barbatruc
Re : Impossible de supprimer des styles.

Bise à JCGL:)

Oui mais c'est l'extension _Reporting qui n'est pas "normale" : dès qu'on utilise un classeur sur plusieurs versions d'Excel ça fiche le bazar dans les styles et parfois on n'arrive pas à purger tout à fait ce bazar.

Faudrait que je retrouve la cas que j'avais eu mais je ne me souviens plus si finalement j'avais réussi à éliminer un style récalcitrant...
 

Dranreb

XLDnaute Barbatruc
Re : Impossible de supprimer des styles.

Bonsoir.
Ces styles suivis d'un "_" puis d'un nom de classeur sans le ".xls" apparaissent quand on copie une feuille de cet autre classeur, mais je ne ne souviens avoir eu de problèmes pour les supprimer.
Seraient-ils utilisés dans des cellules protégées ?
 

dionys0s

XLDnaute Impliqué
Re : Impossible de supprimer des styles.

Bonjour tout de monde

Merci pour vos réponse.
Dans le classeur exemple que j'ai fourni, les styles ne sont utilisés nulle part. J'ai purgé le classeur de toutes ses données, de tous les onglets, donc aucune cellule, protégée ou non, n'utilise l'un de ces styles. Incompréhensible...
 

Staple1600

XLDnaute Barbatruc
Re : Impossible de supprimer des styles.

Bonjour à tous

A tester (pour les radicaux)
Code:
Sub RAZ_Styles()
Dim nbs, s
nbs = ActiveWorkbook.Styles.Count
For i = nbs To 1 Step -1
Set s = ActiveWorkbook.Styles(i)
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub

source (anglophone)

A tester (variante avec avertissement avant suppression)
(version réservée à ceux qui aiment les MsgBox et les clics sur les boutons OK ;) )
Code:
Sub StyleKill()
'code d'Allen Wyatt
    Dim styT As Style
    Dim intRet As Integer

    For Each styT In ActiveWorkbook.Styles
        If Not styT.BuiltIn Then
            intRet = MsgBox("Delete style '" & styT.Name & "'?", vbYesNo)
            If intRet = vbYes Then styT.Delete
        End If
    Next styT
End Sub
 
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : Impossible de supprimer des styles.

Bonjour JM

merci pour ton aide. Ton code bug à partir du moment où il est sur l'un des deux styles que je souhaiterais supprimer. Le message d'erreur est : "La méthode Delete de la classe Style a échoué".
L'as-tu testé sur mon fichier ?

Bonne journée à tous
Dionys0s
 

Discussions similaires

Statistiques des forums

Discussions
312 378
Messages
2 087 760
Membres
103 661
dernier inscrit
fcleves