Afficher les noms des styles utilisés

  • Initiateur de la discussion Initiateur de la discussion panda
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

panda

XLDnaute Occasionnel
Bonjour
J'ai un gros fichier excel qui me donne un message erreur lorsque je veux faire une mise en forme. Je pense que cela vient du grand nombre de styles que j'ai dans ce classeur (j'ai déjà eu le cas sur un autre classeur).
La seule solution consiste donc à supprimer des styles mais je ne veux pas faire de bêtises. Ce qui serait bien : Obtenir dans une feuille le nom des styles utilisés ... Est ce possible ? Mon niveau en VB est -1 et pourtant je ne vois que cette possibilité...
Quelqu'un pourra-til m'aider ?

Merci et bon courage à nous qui travaillons !
 
Re : Afficher les noms des styles utilisés

Bonjour,

essaye ceci, te donnera le nom des styles du classeur actif :
Code:
Option Explicit
Sub test()
Dim s As Style, i As Integer
For Each s In ActiveWorkbook.Styles
    i = i + 1
    Cells(i, 1) = s.Name
Next s
End Sub

bon après midi
@+
 
Re : Afficher les noms des styles utilisés

Merci Pierrot93
Je viens de la tester sur un autre fichier et j'ai l'impression qu'elle me donne la liste des styles du classeur. Je pense qu' il y a eu du n'importe quoi de fait et que les styles ont pû être appliqués sur une cellule sans raison.
Dans ce cas ... Peut être que le nom des styles avec la référence de la feuille où il est utilisé serait encore mieux...
Ouh je deviens exigeante ! Mais la deuxième macro qui supprime tous les styles personnalisés, ja'i peur que ce soit trop "expéditif".

Merci pour votre aide.
 
Re : Afficher les noms des styles utilisés

Re,

faut boucler sur toutes les cellules de toutes les feuilles, risque d'être long :
Code:
Option Explicit
Sub test()
Dim ws As Worksheet, c As Range, i As Integer
Worksheets.Add
For Each ws In Worksheets
    If ws.Name <> ActiveSheet.Name Then
        For Each c In ws.UsedRange
            If Not ActiveWorkbook.Styles(c.Style.Name).BuiltIn Then
                i = i + 1
                Cells(i, 1) = c.Address(external:=True)
                Cells(i, 2) = c.Style.Name
            End If
        Next c
    End If
Next ws
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
396
Réponses
3
Affichages
885
Retour