Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.j
A tout hasard essaie d'utiliser cette macro pour faire un peu de nettoyage:
Supprime les formats inutilisés. Utile pour conserver de la mémoire
- La procédure SupprFormatsInutilisés supprime tous les formats personnalisés qui ne sont utilisés nulle part dans le classeur actif.
- La procédure SupprFormatsCellulesVides supprime également les formats inutilisés, *et aussi* les formats qui ne sont attachés *qu'à des cellules vides*.
Désolé pour l'affichage répété de la boîte de dialogue "Format de cellule " au début de la macro, je ne sais pas trop comment l'éviter" (ScreenUpdating = False n'y change rien, ni LockWindowUpdate).
Si tu utilises Excel 2000, il faut ajouter au projet une référence à "Microsoft Forms 2.0 Object Library". Cette macro n'est prévue que pour Excel 97 et 2000 (et j'espère les versions ultérieures!). Je ne l'ai testée que sous Excel 2000 jusqu'à présent. Laurent Longre Testé sous Xp . DJ ========================================== Option Explicit
Sub SupprFormatsInutilisés() SupprFormats True End Sub
Sub SupprFormatsCellulesVides() SupprFormats False End Sub
Private Sub SupprFormats(Min As Boolean)
Dim Form As String, Prev As String, F As String Dim i As Integer, j As Integer
Dim dObj As New DataObject, c As New Collection Dim Wksht As Worksheet, Cell As Range, Shts As Sheets
Application.EnableCancelKey = xlDisabled Application.StatusBar = "Collecte des formats en cours..." Do j = (j + 1) Mod 5 If j = 0 Then i = i + 1 Application.SendKeys "{TAB}{END}{TAB 2}{HOME}" & IIf(i, "{PGDN " _ & i & "}", "") & IIf(j, "{DOWN " & j & "}", "") & "+{TAB}^c{ESC}" Application.Dialogs(xlDialogFormatNumber).Show dObj.GetFromClipboard Form = dObj.GetText(1) If Form = Prev Then Exit Do c.Add Form, Form Prev = Form Loop
Application.StatusBar = "Recherche des formats utilisés en cours..." Set Shts = ActiveWindow.SelectedSheets On Error Resume Next For Each Wksht In Worksheets Wksht.Select For Each Cell In Wksht.UsedRange If Not IsEmpty(Cell) Or Min Then F = c.Item(Cell.NumberFormatLocal) If F <> "" Then c.Remove Cell.NumberFormatLocal F = "" End If End If Next Cell Next Wksht Application.ScreenUpdating = False Err.Clear Application.StatusBar = False j = 0
With ActiveWorkbook Workbooks.Add For i = 1 To c.Count Range("A1").NumberFormatLocal = c(i) .DeleteNumberFormat ActiveCell.NumberFormat If Err = 0 Then j = j + 1 Else Err.Clear Next i MsgBox j & " format(s) inutilisé(s) supprimé(s).", vbInformation End With ActiveWorkbook.Close False Shts.Select End Sub
http://dj.joss.free.fr/format.htm#format1
-- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"Benjamin" a écrit dans le message de news: 096601c39a17$6dfb58e0$ Bonjour,
J'ai mis en place 1 tableau croisé dynamique et lorsque je l'actualise, j'ai ce message d'erreur :
Erreur "Impossible d'ajouter davantage de formats de nombre personalisés"
Pourquoi ?? Je n'ai aucun format personalisé ni rien d'autre.
Merci.
BT
A tout hasard essaie d'utiliser cette macro pour
faire un peu de nettoyage:
Supprime les formats inutilisés. Utile pour conserver de la mémoire
- La procédure SupprFormatsInutilisés supprime tous les formats
personnalisés qui ne sont utilisés nulle part dans le classeur actif.
- La procédure SupprFormatsCellulesVides supprime également les formats
inutilisés, *et aussi* les formats qui ne sont attachés *qu'à des cellules vides*.
Désolé pour l'affichage répété de la boîte de dialogue "Format de
cellule " au début de la macro, je ne sais pas trop comment l'éviter"
(ScreenUpdating = False n'y change rien, ni LockWindowUpdate).
Si tu utilises Excel 2000, il faut ajouter au projet une référence à
"Microsoft Forms 2.0 Object Library". Cette macro n'est prévue que pour
Excel 97 et 2000 (et j'espère les versions ultérieures!). Je ne l'ai
testée que sous Excel 2000 jusqu'à présent.
Laurent Longre
Testé sous Xp . DJ
========================================== Option Explicit
Sub SupprFormatsInutilisés()
SupprFormats True
End Sub
Sub SupprFormatsCellulesVides()
SupprFormats False
End Sub
Private Sub SupprFormats(Min As Boolean)
Dim Form As String, Prev As String, F As String
Dim i As Integer, j As Integer
Dim dObj As New DataObject, c As New Collection Dim Wksht As Worksheet, Cell As Range, Shts As
Sheets
Application.EnableCancelKey = xlDisabled
Application.StatusBar = "Collecte des formats en cours..."
Do
j = (j + 1) Mod 5
If j = 0 Then i = i + 1
Application.SendKeys "{TAB}{END}{TAB 2}{HOME}" & IIf(i, "{PGDN " _
& i & "}", "") & IIf(j, "{DOWN " & j & "}", "") & "+{TAB}^c{ESC}"
Application.Dialogs(xlDialogFormatNumber).Show
dObj.GetFromClipboard
Form = dObj.GetText(1)
If Form = Prev Then Exit Do
c.Add Form, Form
Prev = Form
Loop
Application.StatusBar = "Recherche des formats utilisés en cours..."
Set Shts = ActiveWindow.SelectedSheets
On Error Resume Next
For Each Wksht In Worksheets
Wksht.Select
For Each Cell In Wksht.UsedRange
If Not IsEmpty(Cell) Or Min Then
F = c.Item(Cell.NumberFormatLocal)
If F <> "" Then
c.Remove Cell.NumberFormatLocal
F = ""
End If
End If
Next Cell
Next Wksht Application.ScreenUpdating = False
Err.Clear
Application.StatusBar = False
j = 0
With ActiveWorkbook
Workbooks.Add
For i = 1 To c.Count
Range("A1").NumberFormatLocal = c(i)
.DeleteNumberFormat ActiveCell.NumberFormat
If Err = 0 Then j = j + 1 Else Err.Clear
Next i
MsgBox j & " format(s) inutilisé(s) supprimé(s).", vbInformation
End With
ActiveWorkbook.Close False
Shts.Select
End Sub
http://dj.joss.free.fr/format.htm#format1
--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"Benjamin" <benjamin.tibo-ext@power.alstom.com> a écrit dans le message de news:
096601c39a17$6dfb58e0$a301280a@phx.gbl...
Bonjour,
J'ai mis en place 1 tableau croisé dynamique et lorsque je
l'actualise, j'ai ce message d'erreur :
Erreur "Impossible d'ajouter davantage de formats de
nombre personalisés"
Pourquoi ?? Je n'ai aucun format personalisé ni rien
d'autre.
A tout hasard essaie d'utiliser cette macro pour faire un peu de nettoyage:
Supprime les formats inutilisés. Utile pour conserver de la mémoire
- La procédure SupprFormatsInutilisés supprime tous les formats personnalisés qui ne sont utilisés nulle part dans le classeur actif.
- La procédure SupprFormatsCellulesVides supprime également les formats inutilisés, *et aussi* les formats qui ne sont attachés *qu'à des cellules vides*.
Désolé pour l'affichage répété de la boîte de dialogue "Format de cellule " au début de la macro, je ne sais pas trop comment l'éviter" (ScreenUpdating = False n'y change rien, ni LockWindowUpdate).
Si tu utilises Excel 2000, il faut ajouter au projet une référence à "Microsoft Forms 2.0 Object Library". Cette macro n'est prévue que pour Excel 97 et 2000 (et j'espère les versions ultérieures!). Je ne l'ai testée que sous Excel 2000 jusqu'à présent. Laurent Longre Testé sous Xp . DJ ========================================== Option Explicit
Sub SupprFormatsInutilisés() SupprFormats True End Sub
Sub SupprFormatsCellulesVides() SupprFormats False End Sub
Private Sub SupprFormats(Min As Boolean)
Dim Form As String, Prev As String, F As String Dim i As Integer, j As Integer
Dim dObj As New DataObject, c As New Collection Dim Wksht As Worksheet, Cell As Range, Shts As Sheets
Application.EnableCancelKey = xlDisabled Application.StatusBar = "Collecte des formats en cours..." Do j = (j + 1) Mod 5 If j = 0 Then i = i + 1 Application.SendKeys "{TAB}{END}{TAB 2}{HOME}" & IIf(i, "{PGDN " _ & i & "}", "") & IIf(j, "{DOWN " & j & "}", "") & "+{TAB}^c{ESC}" Application.Dialogs(xlDialogFormatNumber).Show dObj.GetFromClipboard Form = dObj.GetText(1) If Form = Prev Then Exit Do c.Add Form, Form Prev = Form Loop
Application.StatusBar = "Recherche des formats utilisés en cours..." Set Shts = ActiveWindow.SelectedSheets On Error Resume Next For Each Wksht In Worksheets Wksht.Select For Each Cell In Wksht.UsedRange If Not IsEmpty(Cell) Or Min Then F = c.Item(Cell.NumberFormatLocal) If F <> "" Then c.Remove Cell.NumberFormatLocal F = "" End If End If Next Cell Next Wksht Application.ScreenUpdating = False Err.Clear Application.StatusBar = False j = 0
With ActiveWorkbook Workbooks.Add For i = 1 To c.Count Range("A1").NumberFormatLocal = c(i) .DeleteNumberFormat ActiveCell.NumberFormat If Err = 0 Then j = j + 1 Else Err.Clear Next i MsgBox j & " format(s) inutilisé(s) supprimé(s).", vbInformation End With ActiveWorkbook.Close False Shts.Select End Sub
http://dj.joss.free.fr/format.htm#format1
-- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"Benjamin" a écrit dans le message de news: 096601c39a17$6dfb58e0$ Bonjour,
J'ai mis en place 1 tableau croisé dynamique et lorsque je l'actualise, j'ai ce message d'erreur :
Erreur "Impossible d'ajouter davantage de formats de nombre personalisés"
Pourquoi ?? Je n'ai aucun format personalisé ni rien d'autre.