Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Poids fichier trop lourd

53 views
Skip to first unread message

Franck

unread,
Nov 7, 2002, 4:43:51 AM11/7/02
to
Bjr à tous !

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


Papou

unread,
Nov 7, 2002, 4:56:28 AM11/7/02
to
Bonjour Franck
Va voir ici :
http://disciplus.simplex.free.fr/xl/plantages.htm#fichierobèse
Cordialement
Pascal

"Franck" <franck...@carabosse.fr> a écrit dans le message de news:
uj8#rBkhCHA.1148@tkmsftngp11...

Bob

unread,
Nov 7, 2002, 5:25:31 AM11/7/02
to
Salut Franck

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 :

Franck

unread,
Nov 7, 2002, 8:07:49 AM11/7/02
to
Merci de la réponse!
Mais comment appliquer, moi qui ne pipe pas un mot en programmation?
Bye

"Papou" <TrucMachinp...@tibco.fr> a écrit dans le message news:
u7P0yOkhCHA.2448@tkmsftngp11...

Franck

unread,
Nov 7, 2002, 8:09:13 AM11/7/02
to
Bon sang! c'est bien sur.
Génial (une fois que j'aurai pigé comment alléger le fichier.
Bye


"Bob" <b.oll...@wanadoo.fr> a écrit dans le message news:
B9EFFE2B.7B2%b.oll...@wanadoo.fr...

guyreyval

unread,
Nov 7, 2002, 9:05:45 AM11/7/02
to
Hi,
Tu vides simplement de tes données.
guy

"Franck" <franck...@carabosse.fr> a écrit dans le message de news:
#hwmqzlhCHA.1952@tkmsftngp09...

Papou

unread,
Nov 7, 2002, 9:08:49 AM11/7/02
to
Franck
Dans Excel tu fais Alt + F11
Menu Insertion, Module et tu colles la macro de Laurent Longre.
Tu retournes dans Excel, Outils Macros Macro et tu exécutes la macro
NettoieEtDerniereCellule
Cordialement
Pascal

"Franck" <franck...@carabosse.fr> a écrit dans le message de news:

#hwmqzlhCHA.1952@tkmsftngp09...

Modeste

unread,
Nov 7, 2002, 10:17:19 AM11/7/02
to
Bonjour,
toujours tiré de l'excellente macro de Laurent Longre:

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

0 new messages