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
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