afficher nombre de style de cellule utilisé

daronne

XLDnaute Nouveau
Bonjour,
je viens d'apprendre un peu malgré moi que le "nombre maximal de styles de cellules par classeur" est de 4 000. Or j'aimerais pouvoir connaitre ce nombre de style dans mon classeur afin de pouvoir :
- diminuer ce nombre (et ainsi pouvoir suivre l'évolution de ce nombre)
- alerter les utilisateurs lorsque l'on s'en approche et ainsi éviter qu'ils utilisent des formats de cellules à chaque fois différent.

Quelqu'un pourrait-il m'aider?

Merci à tous
 

Cousinhub

XLDnaute Barbatruc
Re : afficher nombre de style de cellule utilisé

Bonsoir,

trouvé sur MPFE, ce code :

Code:
Type Styles_Et_Formats
    Styles_Utilises As Long
    DeltaAvecLeStyle As Long
    MEFC As Long
End Type
Dim D As Object
Sub TestNFSC()
    Dim r As Styles_Et_Formats
    r = NbFormatsSurClasseur(ActiveWorkbook)
    MsgBox ActiveWorkbook.Name & ":" & vbNewLine & _
    "==>" & vbTab & r.DeltaAvecLeStyle & _
    " cellules avec formats particuliers" & vbNewLine & _
    "==>" & vbTab & r.Styles_Utilises & _
    " styles précis utilisés" & vbNewLine & _
    "==>" & vbTab & r.MEFC & " MEFC."
End Sub
Function NbFormatsSurClasseur(Classeur As Workbook) As Styles_Et_Formats
    Dim Feuille As Worksheet
    Dim n As Long, fc As Long, r As Styles_Et_Formats
    n = 0: fc = 0
    Set D = CreateObject("Scripting.Dictionary")

    For Each Feuille In ActiveWorkbook.Worksheets
        r = NbFormatsSurFeuille(Feuille)
        n = n + r.DeltaAvecLeStyle
        fc = fc + r.MEFC
    Next Feuille
    NbFormatsSurClasseur.DeltaAvecLeStyle = n
    NbFormatsSurClasseur.MEFC = fc
    NbFormatsSurClasseur.Styles_Utilises = D.Count
    Set D = Nothing
End Function
Function NbFormatsSurFeuille(sht As Worksheet) As Styles_Et_Formats
Dim Cell As Range, nomStyle As String, Res As Styles_Et_Formats
Res.MEFC = 0: Res.DeltaAvecLeStyle = 0
For Each Cell In sht.UsedRange
    nomStyle = Cell.Style.Name
    If Not D.exists(nomStyle) Then D.Add nomStyle, 1
    With ActiveWorkbook.Styles(nomStyle)
        If Cell.NumberFormat <> .NumberFormat Or _
           Cell.HorizontalAlignment <> .HorizontalAlignment Or _
           Cell.VerticalAlignment <> .VerticalAlignment Or _
           Cell.Borders.Value <> .Borders.Value Or _
           Cell.Locked <> .Locked Or _
           Cell.Interior.ColorIndex <> .Interior.ColorIndex Or _
           Cell.Interior.Pattern <> .Interior.Pattern Or _
           Cell.Font.Name <> .Font.Name Or _
           Cell.Font.Size <> .Font.Size Or _
           Cell.Font.Bold <> .Font.Bold Or _
           Cell.Font.Italic <> .Font.Italic Or _
           Cell.Font.ColorIndex <> .Font.ColorIndex Then
            Res.DeltaAvecLeStyle = Res.DeltaAvecLeStyle + 1
        End If
      Res.MEFC = Res.MEFC + Cell.FormatConditions.Count
    End With
Next Cell
NbFormatsSurFeuille = Res
End Function
 

daronne

XLDnaute Nouveau
Re : afficher nombre de style de cellule utilisé

Re,
j'ai testé vos codes et j'avoue que je ne sais pas à quoi correspond ce que renvoie celui de Michel. Quant à celui de bhbh, en ajoutant une opération dans le code je pense que j'arrive au nombre que je cherchais donc merci à tous les deux de m'avoir aider à résoudre mon problème.

A bientot

Rémi
 

mdorfi

XLDnaute Nouveau
Re : afficher nombre de style de cellule utilisé

Bonsoir!

Mais comment les informations affichées après le code de bhbh se comparent-elles avec le nombre de styles maximum de 4000??

Merci d'avance!
 
Dernière édition:

mdorfi

XLDnaute Nouveau
Re : afficher nombre de style de cellule utilisé

Re,
j'ai testé vos codes et j'avoue que je ne sais pas à quoi correspond ce que renvoie celui de Michel. Quant à celui de bhbh, en ajoutant une opération dans le code je pense que j'arrive au nombre que je cherchais donc merci à tous les deux de m'avoir aider à résoudre mon problème.

A bientot

Rémi
Bonjour Rémi,

peux-tu partager avec moi les chngemùents que tu as apporté au code de bhbh qui t'ont permis d'afficher le nombre de styles utilisés?

Merci d'avance,

Marc
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 898
Membres
103 022
dernier inscrit
Ouékino