poids d'un classeur

Sheldor

XLDnaute Occasionnel
Supporter XLD
bonjour tout le monde,

je travaille sur des fichiers avec pas mal de pages et parfois j'ai besoin de savoir pourquoi le poids de mon classeur est plus important que ce que j'aimerais...

je me suis fait un petit bout de code pour décomposer le classeur feuille par feuille, les feuilles s'enregistrent une par une au même endroit que le classeur

Application.ScreenUpdating = False
fichier_source = ActiveWorkbook.Name
Chemin = ActiveWorkbook.Path
Nombre = ActiveWorkbook.Sheets.Count
For i = 1 To Nombre
Sheets(i).Visible = True
Sheets(i).Select
nom = ActiveSheet.Name
Sheets(i).Visible = True
Sheets(i).Select
Sheets(i).Copy

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Chemin & "\" & nom & ".xls"
ActiveWorkbook.Close
Application.DisplayAlerts = True

Windows(fichier_source).Activate

Next i

c'est tout bête mais c'est pratique, du coup j'obtiens toute mes feuilles dans mon explorateur et en gros la somme du poids de ces feuilles fait le poids du classeur entier. Ca me permet de voir quelle feuille est "lourde" et parfois je peux réduire (virer les colonnes et lignes inutiles qui font du poids même vides, images pas compressée par oubli...)

Sauf que ce matin j'ai un fichier dont la somme des feuilles séparées fait 5 Mo et mon classeur entier avec ces même feuilles fait 18 Mo et je ne comprends pas comment c'est possible d'où ma question ici

il y a un peu de code dedans mais pas non plus des tonnes
c'est un fichier destiné à visualiser des images pour collecter des données mais je ne laisse pas d'image dedans


j'ai essayé ceci sans succès, je le mets ça peut intéresser quelqu'un:

last_ligne = 1
last_col = 1

For col = 1 To 255
ligne = Cells(65536, col).End(xlUp).Row
If ligne > last_ligne Then last_ligne = ligne
If ligne > 1 Then last_col = col

Next col



If last_col < 255 Then
Range(Cells(1, last_col + 1), Cells(65536, 255)).Select
Selection.EntireColumn.Delete
End If



If last_ligne < 65536 Then
Rows(last_ligne + 1 & ":" & 65536).Select
Selection.Delete Shift:=xlUp
End If

(ça supprime les lignes et colonnes sans données, parfois ça aide bien)

si quelqu'un a une idée merci beaucoup
(évidemment le classeur est un peu lourd pour l'envoyer)

bonne matinée
nico
 

MJ13

XLDnaute Barbatruc
Re : poids d'un classeur

Bonjour Nico

C'est un problème assez classique quand on importe des données et que la fin de la feuille se termine par la dernière ligne.

Sinon, si tu passes à une version d'Excel supérieure à XL2003, tu pourras sauvegarder en .xlsm et là, tes fichiers seront bien plus petits.
 

libellule85

XLDnaute Accro
Re : poids d'un classeur

Bonjour nicopec, MJ13, le forum,

@ MJ13: comment cela se fait-il qu'un fichier enregistré en xlsm est plus léger qu'en xls ? Je viens de faire un essai, j'ai un fichier en xls qui fait 3.9 Mo et une fois enregistré en xlsm fait 817 ko !
 

MJ13

XLDnaute Barbatruc
Re : poids d'un classeur

Re, Bonjour Libellule

C'est normal, vu que le fichier .xlsm est un fichier compressé qui peut même être inférieur à un fichier .txt.

C'est un peu comme si tu avais un fichier .zip.
 

MJ13

XLDnaute Barbatruc
Re : poids d'un classeur

Re, bonjour Modeste GD

peux tu m'expliquer "la fin de la feuille se termine par la dernière ligne."

Pour voir si tu as trop de ligne de prise en compte, tu fais ctrl+Fin et si tu arrives à la dernière ligne de la feuille, c'est qu'il y a eu un problème et ton fichier sera plus lourd. Il faut donc supprimer comme tu l'as fait, je pense, les lignes et colonnes en trop.
 

MJ13

XLDnaute Barbatruc
Re : poids d'un classeur

Re

Mais il faudrait faire le contraire aussi, refaire un fichier à partir de tes feuilles qui font 5 Mo pour voir si le poids augmente.

Mais cela pourrait venur du fait qu'il reste des scories des sauvegardes successives et qui font augmenter le poids.
 

Discussions similaires

Réponses
4
Affichages
205

Statistiques des forums

Discussions
312 164
Messages
2 085 870
Membres
103 007
dernier inscrit
salma_hayek