ouverture et fermeture de fichier excel 2007 tres long [RESOLU]

oly22

XLDnaute Nouveau
Bonjour à tous

je suis confronté à un problème que je n'arrive pas à résoudre...

J'ai un fichier excel de planning pour mon restaurant (1 feuille par semaine), j'utilise ce fichier depuis mars 2010 avec les mêmes formules, rien n'a changé depuis le début, je fais un fichier par an. Pourtant depuis quelques semaines, l'ouverture et le fermeture du fichier 2013 prennent plusieurs minutes !

pourtant je suis reparti début juin d'un fichier neuf car l'ancien pour les 5 premiers mois de 2013 faisait déjà plus de 6 MO !

quand je regarde la taille du fichier du mois de Juin 2013, il fait plus de 2.5 MO ! çà n'a aucun sens...d'autant que le fichier pour toute l'année 2012 faisait 2,8 MO (donc avec 52 feuilles à l’intérieur)

Bref je sèche et j'aurai grand besoin de votre aide

merci d'avance
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

RE

bon le voilà, je n'ai gardé que 20 lignes par feuille, mais niveau taille ca ne change rien...

pour info, le fichier a 8 feuilles, sur chaque feuille il a 43 colonnes et 114 lignes

As-tu fais comme ceci?
Sur chaque feuille, tu sélectionnes la ligne 21 et tu fais ctrl+shift+fleche bas, clic-droit -> Supprimer

Tu peux essayer cette macro (toujours sur une copie)
Code:
Sub On_ratiboise()
Dim i%
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).Activate
Sheets(i).Rows("21:" & Application.Rows.Count).Delete
Sheets(i).DrawingObjects.Delete
Next i
End Sub
Ensuite tu fais Enregistrer sous, et tu lui donnes un autre nom.

Quelle est alors la taille de ce nouveau classeur?

PS: xhudi69:
Non pas tout le monde, ici je suis sous XP, XL 2003
(1,66 Ghz et 1 giga de ram)
Heureusement ce n'est pas mon PC.
 
Dernière édition:

xhudi69

XLDnaute Accro
Re : ouverture et fermeture de fichier excel 2007 tres long

Re Bonsoir Stapple et tout le monde

J'envoie le fichier en xls via une plateforme, ça pédale sec;) , c'est normal avec le tour de france :p dès qu'il est chargé je te poste le lien.

@+ :cool:
 

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

Re

Il est déraisonnable qu'un fichier Excel fasse prés de 50 Mo.

Donc par égard pour cet Excel que je chéri depuis un bail, et en souvenirs des joies et bonheur que nous avons partagé, je refuse de maltraiter Excel en lui imposant de se goinfrer un fichier en obésité morbide.

oly22:
Quand un fichier bug, il vaut mieux le refaire entièrement en partant d'un classeur vierge.
Surtout si la dernière macro que je t'ai indiqué n'a pas réduit sa taille.
Qu'en penses-tu?
 
Dernière édition:

xhudi69

XLDnaute Accro
Re : ouverture et fermeture de fichier excel 2007 tres long

RE

@ Staple1600 ;)

J'ai supprimé des lignes en laissant que les 20 premières maintenant le fichier xls ne pèse plus que 43,5 Mo ;););)

Je continue .......................arf...........arf.................gruik......

@+ :cool:
 

oly22

XLDnaute Nouveau
Re : ouverture et fermeture de fichier excel 2007 tres long

Re

Il est déraisonnable qu'un fichier Excel fasse prés de 50 gigas.

Donc par égard pour cet Excel que je chéri depuis un bail, et en souvenirs des joies et bonheur que nous avons partagé, je refuse de maltraiter Excel en lui imposant de se goinfrer un fichier en obésité morbide.

oly22:
Quand un fichier bug, il vaut mieux le refaire entièrement en partant d'un classeur vierge.
Surtout si la dernière macro que je t'ai indiqué n'a pas réduit sa taille.
Qu'en penses-tu?

Sur le principe je suis d'accord et c'est ce que je fais d'habitude

d'ailleurs le fichier ici present est un fichier vierge dans lequel je n'ai récupéré qu'une feuille de calcul de l'ancien fichier que j'y ait inséré
tout c'est bien passé pendant environ 1 mois, puis tout à coup, le fichier est devenu obese sans raison...
 

xhudi69

XLDnaute Accro
Re : ouverture et fermeture de fichier excel 2007 tres long

RE

@Staple1600:



@+ :cool:

ERRATUM: mea culpa, je n'avais pas vu toutes les lignes cachées ! il y a effectivement des formules faisant appel à beaucoups de cellules, ceci multiplié par le nombre important de champs cela commence à faire pas mal.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

Re

xhudi69:
Tu peux déterminer sur chaque feuille quelle est la dernière ligne utile ?
et adapter ma macro on_ratiboise en conséquence puis l’exécuter ?
Car ta dernière pièce jointe (en *.xls) fait 49 Mo !!!
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

Re

En attendant le feu d'artifice, voici la macro modifiée
Code:
Sub On_RatiboiseII()
Dim i%, dl&
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
With Sheets(i)
    .Activate
    dl = Cells(Application.Rows.Count, 1).End(xlUp).Row + 1
    .Rows(dl & ":" & Application.Rows.Count).Delete
    .DrawingObjects.Delete
End With
Next i
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

Re


Bon j'ai pu ouvrir le dernier fichier (1,58 Mo)
Et là, horreur, diantre et palsambleu, le fichier n'est pas anonymisé !!!
(Il contient des noms et prénoms)
Pas glop! Pas glop!

Donc va falloir anonymiser le fichier et purger la discussion de ces fichiers "sensibles"
 

Staple1600

XLDnaute Barbatruc
Re : ouverture et fermeture de fichier excel 2007 tres long

Re

oly22:
Maitrises-tu suffisamment le VBA pour remplacer tes formules par du VBA?
(ce qui allégerai ton classeur)

xhudi69:
Je reviens du feu d'artifice et vu que tu n'es pas encore au dodo, et que tu en as une grosse ... configuration
Je te laisse tester cette macro sur le fichier original
Code:
Sub On_RatiboiseEtOnAnonymise()
Dim i%, dl&, j&
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
With Sheets(i)
    .Activate
        dl = Cells(Application.Rows.Count, 1).End(xlUp).Row + 1
    .Rows(dl & ":" & Application.Rows.Count).Delete
    .DrawingObjects.Delete
        For j = 7 To dl
        .Cells(j, 1) = MelangeMoiLaCellule(Cells(j, 1).Text)
        Next j
End With
Next i
 End Sub
Code:
Public Function MelangeMoiLaCellule(Chaine$) As String ' inspiré de J.Walkenbach
Dim i%, j%, k%, sChr As String * 1
i = Len(Chaine)
For j = 1 To i
    sChr = Mid(Chaine, j, 1)
    k = Int((i - 1 + 1) * Rnd + 1)
    Mid(Chaine, j, 1) = Mid(Chaine, k, 1)
    Mid(Chaine, k, 1) = sChr
Next j
MelangeMoiLaCellule = Chaine
End Function
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813