Je gère un classeur Excel de contrôle de gestion assez volumineux ( 50
feuilles ).
Mon pb est le suivant:
Toutes les fins de mois , j'enregistre définitivement mon fichier avant d'en
faire une copie portant comme nom de fichier le nom du mois suivant.
Cette copie étant faite, je ré-initialise ce nouveau fichier en le rendant
vierge de toutes données .
Or chaque fichier est plus lourd de 2 Mo tous les mois (le premier remontant
à 1 an faisait 20 Mo; j'arrive maintenant à 45 Mo), alors que tous les mois
je saisi approximativement le même nombre de données .
Quel est ce mystère et comment redonner maintenant un petit coup de régime à
mon fichier obèse actuel?
Merci à tous.
Franck
"Franck" <franck...@carabosse.fr> a écrit dans le message de news:
uj8#rBkhCHA.1148@tkmsftngp11...
En plus de l'excellent conseil de Papou, je te suggère, une fois allégé,
d'enregistrer le fichier vierge en tant que modèle. Pour cela, tu fais un
enregistrer sous/format/modèle et tu n'auras plus qu'à le sélectionner
lorsque tu voudras créer un nouveau fichier.
Bernard 8°)
dans l'article u7P0yOkhCHA.2448@tkmsftngp11, Papou à
TrucMachinp...@tibco.fr a écrit le 7/11/02 10:56 :
"Papou" <TrucMachinp...@tibco.fr> a écrit dans le message news:
u7P0yOkhCHA.2448@tkmsftngp11...
"Bob" <b.oll...@wanadoo.fr> a écrit dans le message news:
B9EFFE2B.7B2%b.oll...@wanadoo.fr...
"Franck" <franck...@carabosse.fr> a écrit dans le message de news:
#hwmqzlhCHA.1952@tkmsftngp09...
Dans Excel tu fais Alt + F11
Menu Insertion, Module et tu colles ci-dessous
Tu retournes dans Excel, Outils Macros 
et tu exécutes la macro Nettoie
et là tu admire le travail !
Modeste GeeDee
HTH
G&D
@+
'=======================================
Sub Nettoie()
  Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien 
As String, Avant As Double, plage As Range
  On Error Resume Next
  Calc = Application.Calculation ' ---- mémorisation de 
l'état de recalcul
  '--------------------------------------------------------
----
  MsgBox "Pour le classeur actif  : " _
            & Chr(10) & ActiveWorkbook.FullName _
            & Chr(10) & "dans chaque feuille de calcul" _
            & Chr(10) & "recherche la zone contenant des 
données," _
            & Chr(10) & "réinitialise la dernière cellule 
utilisée" _
            & Chr(10) & "et optimise la taille du fichier 
Excel", _
            vbInformation, _
            "d'après LL par Gee...@m6net.fr"
 '---------------------------------------------------------
----
 MsgBox "Taille initiale de ce classeur en octets" _
            & Chr(10) & FileLen(ActiveWorkbook.FullName), _
            vbInformation, ActiveWorkbook.FullName
  '--------------------------------------------------------
----
  With Application
    .Calculation = xlCalculationManual
    .StatusBar = "Nettoyage en cours..."
    .EnableCancelKey = xlErrorHandler
    .ScreenUpdating = True
  End With
  '-------------------- le traitement
  For Each Sht In Worksheets
  Avant = Sht.UsedRange.Cells.Count
    Application.StatusBar = Sht.Name & "-" & 
Sht.UsedRange.Address
   '-------------------Traitement de la zone trouvée
    If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.
[A1]) Then
      Set DCell = Sht.Cells.Find("*", , , , xlByRows, 
xlPrevious)(2)
       '----------------Suppression des lignes inutilisées
      If Not DCell Is Nothing Then
        Sht.Range(DCell, Sht.Cells([A:A].Count, 
1)).EntireRow.Delete
        Set DCell = Nothing
        Set DCell = Sht.Cells.Find("*", , , , xlByColumns, 
xlPrevious)(, 2)
      '----------------Suppression des colonnes inutilisées
        If Not DCell Is Nothing Then Sht.Range(DCell, Sht.
[IV1]).EntireColumn.Delete
      End If
      Rien = Sht.UsedRange.Address
    End If
    ActiveWorkbook.Save
  '---------------------Message pour la feuille traitée
  MsgBox "Nom de la feuille de calcul :" _
          & Chr(10) & Sht.Name _
          & Chr(10) & Format(Sht.UsedRange.Cells.Count / 
Avant, "0.00%") & " de la taille initiale", _
          vbInformation, ActiveWorkbook.FullName
  Next Sht
  '--------------------Message fin de traitement
  MsgBox "Taille optimisée de ce classeur en octets " & Chr
(10) & FileLen(ActiveWorkbook.FullName), _
          vbInformation, _
          ActiveWorkbook.FullNameActive
  '--------------------
  Application.StatusBar = False
  Application.Calculation = Calc
End Sub