Bonjour,
En tenant compte des formats conditionnels mais pas de la façon optimale que je
voudrais. Ce sera à un autre de prendre le relais ;-)
Salutations,
Daniel M.
' +++++++++++++++++++++++++++++
Dim D As Object
Type Styles_Et_Formats
Styles_Utilises As Long
DeltaAvecLeStyle As Long
MEFC As Long
End Type
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
' +++++++++++++++++++++++++++++
Bonjour,
En tenant compte des formats conditionnels mais pas de la façon optimale que je
voudrais. Ce sera à un autre de prendre le relais ;-)
Salutations,
Daniel M.
' +++++++++++++++++++++++++++++
Dim D As Object
Type Styles_Et_Formats
Styles_Utilises As Long
DeltaAvecLeStyle As Long
MEFC As Long
End Type
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
' +++++++++++++++++++++++++++++
Bonjour,
En tenant compte des formats conditionnels mais pas de la façon optimale que je
voudrais. Ce sera à un autre de prendre le relais ;-)
Salutations,
Daniel M.
' +++++++++++++++++++++++++++++
Dim D As Object
Type Styles_Et_Formats
Styles_Utilises As Long
DeltaAvecLeStyle As Long
MEFC As Long
End Type
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
' +++++++++++++++++++++++++++++
Bonsoir Daniel,
Il y a déjà pas mal de boulot fait en deux jours !..
Archivons toujours en cet état, en l'attente d'une réaction du demandeur ou
d'une nouvelle question et d'un sursaut d'énergie :)
Bonsoir Daniel,
Il y a déjà pas mal de boulot fait en deux jours !..
Archivons toujours en cet état, en l'attente d'une réaction du demandeur ou
d'une nouvelle question et d'un sursaut d'énergie :)
Bonsoir Daniel,
Il y a déjà pas mal de boulot fait en deux jours !..
Archivons toujours en cet état, en l'attente d'une réaction du demandeur ou
d'une nouvelle question et d'un sursaut d'énergie :)
Bonjour,
Je vous remercie tous pour votre aide, même si j'avoue que je suis un
peu perdu.
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
De mon coté, j'ai fait un bout de code qui génère dans un fichier
texte les formats de toutes les cellules du classeur, pour ensuite
traiter ce fichier afin de repérer les différents formats, ce qui
logiquement devrait me donner le nombre de formats différents, mais je
n'ai pris en compte que les propriétés définissables par les onglets
de la fenêtre "Formats de cellule". Est-ce suffisant ?
Par cette manip, j'obtient une chose etrange : sur un classeur avec
trois feuilles je trouve 158 formats différents, et si dans ce
classeur je fais une simple copie de ces trois feuilles, j'obtient 199
formats différents, alors que je n'ai rien fait d'autre que de copier
des feuilles qui se trouvaient déjà dans ce classuer sans rien saisir
ni modifier de format de cellules.
Y a t'il un moyen d'ouvrir un fichier qui présente le message "Nombre
de formats de cellule différents trop élevé", moyen brutal ou pas,
avec perte des formats ou pas, en supprimant une ou plusieurs feuilles
ou pas, enfin, un début de solution quoi !
Bonjour,
Je vous remercie tous pour votre aide, même si j'avoue que je suis un
peu perdu.
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
De mon coté, j'ai fait un bout de code qui génère dans un fichier
texte les formats de toutes les cellules du classeur, pour ensuite
traiter ce fichier afin de repérer les différents formats, ce qui
logiquement devrait me donner le nombre de formats différents, mais je
n'ai pris en compte que les propriétés définissables par les onglets
de la fenêtre "Formats de cellule". Est-ce suffisant ?
Par cette manip, j'obtient une chose etrange : sur un classeur avec
trois feuilles je trouve 158 formats différents, et si dans ce
classeur je fais une simple copie de ces trois feuilles, j'obtient 199
formats différents, alors que je n'ai rien fait d'autre que de copier
des feuilles qui se trouvaient déjà dans ce classuer sans rien saisir
ni modifier de format de cellules.
Y a t'il un moyen d'ouvrir un fichier qui présente le message "Nombre
de formats de cellule différents trop élevé", moyen brutal ou pas,
avec perte des formats ou pas, en supprimant une ou plusieurs feuilles
ou pas, enfin, un début de solution quoi !
Bonjour,
Je vous remercie tous pour votre aide, même si j'avoue que je suis un
peu perdu.
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
De mon coté, j'ai fait un bout de code qui génère dans un fichier
texte les formats de toutes les cellules du classeur, pour ensuite
traiter ce fichier afin de repérer les différents formats, ce qui
logiquement devrait me donner le nombre de formats différents, mais je
n'ai pris en compte que les propriétés définissables par les onglets
de la fenêtre "Formats de cellule". Est-ce suffisant ?
Par cette manip, j'obtient une chose etrange : sur un classeur avec
trois feuilles je trouve 158 formats différents, et si dans ce
classeur je fais une simple copie de ces trois feuilles, j'obtient 199
formats différents, alors que je n'ai rien fait d'autre que de copier
des feuilles qui se trouvaient déjà dans ce classuer sans rien saisir
ni modifier de format de cellules.
Y a t'il un moyen d'ouvrir un fichier qui présente le message "Nombre
de formats de cellule différents trop élevé", moyen brutal ou pas,
avec perte des formats ou pas, en supprimant une ou plusieurs feuilles
ou pas, enfin, un début de solution quoi !
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
Bonjour,En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
Le principe de base par là:
http://support.microsoft.com/default.aspx?scid=kb;FR;q213904
Bonjour,
En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
Le principe de base par là:
http://support.microsoft.com/default.aspx?scid=kb;FR;q213904
Bonjour,En fait, on ne sait pas de manière précise ce qui doit être pris en
compte ou pas dans le comptage du nombre de cellules.
Le principe de base par là:
http://support.microsoft.com/default.aspx?scid=kb;FR;q213904