Fichier excel de 8mo!

olivier_bahrein

XLDnaute Junior
Mon fichier excel (vierge) fait 8 Mo !

Je ne l'ai probablement pas assez optimisé

Comment faire pour diminuer sa taille ?

Quand l'utilisateur entrera ses données, est-il possible de ne sauvagerader que les données et la mise en forme visuelle , sans les macros qui sont gourmandes en place ?

Merci de vos conseils.

Olivier./.
 

Nevil

XLDnaute Occasionnel
Re : Fichier excel de 8mo!

Salut olivier_bahrein et tout le forum,

J'ai eu a peu pres le meme probleme que toi niveau place, et la seule solution que j'ai trouvée et "facilement réalisable" est de séparer le fichier XL vierge et ses macros.
En meme temps que le fichier s'ouvre, un fichier annexe contenant toutes les macros s'ouvre également et seront utilisable dans le fichier XL dont on veut réduire la taille.

Mais c'est vrai que les Macros prennent beaucoup de place surtout si elles ne sont pas optimisées.
 

Creepy

XLDnaute Accro
Re : Fichier excel de 8mo!

Bonjour Olivier, Nevil,

8 Mo c'est déjà un beau BB, qui à mon avis peut mincir un peu.

Voici quelques petites choses à faire :

1 - La mise en page : si ton tableau fait 20 lignes x 10 colonnes, ne mets en page que cette partie ne mets pas en page tout le document ca bouffe bcp de place. Il existe des bouts de code qui supprime toutes la mise en page des cellules vides, mais je ne remets pas la main dessus. je croyais me souvenir que j'avais trouvé ca sur Excelabo mais impossible de remettre la main dessus.

2 - Lorsque que tu crées des form avec des controles, si tu les effaces, parfois excel conserve une trace invisible de ces controles/forms.
tu trouveras ici un petit utilitaire très pratique Application Professionals qui s'appelle VBA cleaner et qui fait le ménage.

3 - Si tu as des images dans ton fichier essaie d'en réduire la qualité. Bien souvent on insere des images en haute qualité alors que sur un ecran du 75 DPI suffit.

4 - Optimlise ton code ! Use et abuse des boucles, si tu as enregistré certaines macros fait le ménage car l'enregistreur stocke plus d'informations que nécéssaire. PAr exemple si tu enregistre la macro mettre en gras, l'enregistreur va aussi prendre la taille de la police, sa couleur, son type etc ... Si toi tu ne veux que le gras tu peux virer le reste.

Voila mes quelques conseils.

Tu as pas mal posté ces derniers jours, j'ai cru comprendre que tu débutais. Si tu le souhaites poste ton code, j'essaierais de regarder si on peut optimiser des trucs.

Bon courage, A+

Creepy
 

olivier_bahrein

XLDnaute Junior
Re : Fichier excel de 8mo!

Creepy à dit:
Bonjour Olivier, Nevil,

8 Mo c'est déjà un beau BB, qui à mon avis peut mincir un peu.

Voici quelques petites choses à faire :

1 - La mise en page : si ton tableau fait 20 lignes x 10 colonnes, ne mets en page que cette partie ne mets pas en page tout le document ca bouffe bcp de place. Il existe des bouts de code qui supprime toutes la mise en page des cellules vides, mais je ne remets pas la main dessus. je croyais me souvenir que j'avais trouvé ca sur Excelabo mais impossible de remettre la main dessus.

2 - Lorsque que tu crées des form avec des controles, si tu les effaces, parfois excel conserve une trace invisible de ces controles/forms.
tu trouveras ici un petit utilitaire très pratique Application Professionals qui s'appelle VBA cleaner et qui fait le ménage.

3 - Si tu as des images dans ton fichier essaie d'en réduire la qualité. Bien souvent on insere des images en haute qualité alors que sur un ecran du 75 DPI suffit.

4 - Optimlise ton code ! Use et abuse des boucles, si tu as enregistré certaines macros fait le ménage car l'enregistreur stocke plus d'informations que nécéssaire. PAr exemple si tu enregistre la macro mettre en gras, l'enregistreur va aussi prendre la taille de la police, sa couleur, son type etc ... Si toi tu ne veux que le gras tu peux virer le reste.

Voila mes quelques conseils.

Tu as pas mal posté ces derniers jours, j'ai cru comprendre que tu débutais. Si tu le souhaites poste ton code, j'essaierais de regarder si on peut optimiser des trucs.

Bon courage, A+

Creepy

Je t'enverrai bien mon fichier entier pour que tu m'aides à l'optimiser mais il fait 8 Mo.;..remarque, si tu as une ADSL haut débit....

En fait, c'est un calendrier d'abscence d'agents. il est donc assez important en colonne ) au moins 365. et en lignes : autant que d'agents.

Chaque case a une mise en forme conditionnelle sur la date (selon que c'est un jour fériés, un jour de week end ou un jour de congé de l'agent en question). et à ceci s'jaoute 3 userforms, des boutons etc... Ce n'est pas entièrement fini mais c'est proche. Cependant, je ne sais pas s'il pourra être exploité vu sa taille !!

Comment puis-je te l'envoyer ?

Merci!

Olivier./.
 

Creepy

XLDnaute Accro
Re : Fichier excel de 8mo!

Hello All,

Je ne sais pas trop, par mail cela semble compromis.
Il existe des sites de stockage temporaire sur le net pour echanger des fichiers par exemple.

Je sais aussi que certains FAI proposent un tel espace de stockage.

Il me semble que certaines personnes ici se servent de tel site ! Quelqu'un aurait-il une adresse ?

Ne t'inquiète pas pour les 8Mo le haut débit fera son travail !

A+

Creepy
 

Creepy

XLDnaute Accro
Re : Fichier excel de 8mo!

RE All,

Bon j'arrive à 231 Ko !!!

Oui Oui tu s bien lu, je n'ai fait qu'employer les methode que je t'ai décrite dans le précédent mail.

J'ai fait un petit nettoyage de code avec VBA Cleaner (8,3 Mo -> 7,7).

J'ai supprimé la mise en page de toutes les cellules vides. Pour cela tu selectionnes les cellules vides qui seront inutilisées et tu fais "cellules > Supprimer) et voila !! 7.8 Mo -> 305 Ko

Enfin j'ai mis tes codes dans un seul module et j'ai supprimé les deux autres, supprimé les espaces et commentaires inutiles, plus retravaille d'une procédure, et voila la résultat. 231 Ko !!!

Je ne te reposte pas le fichier (de toute facon trop gros en zip = 69 Ko), tu peux refaire facilement ce que j'ai fait.

A+

Creepy

Ps Voici le code que j'ai réécris :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' donne la date heure nom du dernier enregistrement
Dim Boucle As Integer
For Boucle = 1 To 4 Step 1
    Sheets(Boucle).Range("bk34").Value = "Dernière mise à jour : " & Now
Next Boucle
End Sub

RE PS : Quand tu as pluseiurs lignes qui font références à un control, met un with, par exemple remplace :

Code:
UserForm1.TextBox1.Value = format(Date, "yyyy")
UserForm1.ScrollBar1.Min = format(Date, "yyyy")
UserForm1.ScrollBar1.Value = format(Date, "yyyy")
Par :

Code:
With
      .TextBox1.Value = format(Date, "yyyy")
      .ScrollBar1.Min = format(Date, "yyyy")
      .ScrollBar1.Value = format(Date, "yyyy")
end with

C'est plus propre, pro et surtout plus rapide en execution.

Attention tu ne peux pas imbriquer plusieurs with les uns dans les autres ...
 

Creepy

XLDnaute Accro
Re : Fichier excel de 8mo!

Hello All,

José, merci pour cette précision, mon chef m'avait dit que ce n'etait pas possible et j'ai pris cela pour parole d'évangile (il est chef lui !! :D ).

C'est bon à savoir, je vais exploiter.

Encore merci pour ton aide.

Christophe
 

olivier_bahrein

XLDnaute Junior
Re : Fichier excel de 8mo!

Merci à vous tous, je vais de ce pas nettoyer mon fichier comme indiqué par Creepy. Oui, je débute et ce sont là des erreurs de newbies....
Ce petit développement m'a ppairs déjà beaucoup de chose sur la manipulation des dates et les mises en formes !

Merci à ce forum aussi qui est un soutien incontestable.

Bravo à la communauté.

Amitiés,

Olivier./.
 

olivier_bahrein

XLDnaute Junior
Re : Fichier excel de 8mo!

Bonjour Creepy,

Je ne comprends pas la manip de séléctionner les cellules vides de ma feuilles et de les effacer.

Je l'ai fait, j'ai donc sélectionné toutes les lignes en dessous de mon tableau jusqu'à 65536 puis les ai effacées. de même pour les colonnes après le tableau à droite.

Mais je ne crois pas que cela change quelque chose...
La taille de mon fichier reste la même.

Je n'ai certainement pas bien compris ce que tu m'as dit.

Olivier./.
 

Discussions similaires

M
Réponses
9
Affichages
472
Maikales
M

Statistiques des forums

Discussions
312 206
Messages
2 086 227
Membres
103 159
dernier inscrit
FBallea