Taille des fichiers XLSM

Au fur et à mesure de ma programmation en VBA dans Excel, j'ai constaté que la taille du fichier augmentait de façon significative. En comparant avec une ancienne version du fichier, la taille à quasiment été multipliée par deux (450Ko contre 270Ko). Les modifications apportées aux feuilles et aux macros ne justifient pas une telle augmentation.

Après recherches et différentes manipulations, j'ai trouvé que cela provenait du Module. Sans rien changer dans la programmation, j'ai réduit la taille du fichier à 300Ko.

Méthode employée :

- Insérer un nouveau module (Module2)

- Copier/Coller toutes les lignes du Module1 vers Module2

- Supprimer le Module1

- Renommer Module2 en Module1 (propriétés)

- Enregistrer

On peut aussi supprimer le Module1 en exportant les données dans un fichier Bas, puis le réimporter.

Pourquoi cela se produit ? Aucune idée. En tout cas voici une solution.

Bonjour,

Vous êtes sur un site où tous les contributeurs sont des bénévoles.

A la lecture de demande je pense qu'au minimum un peu de lecture de ce lien serait utile --> https://forum.excel-pratique.com/excel/a-lire-avant-de-poster-charte-du-forum-et-informations-utiles... et notamment les autres règles à respecter (point 2)

Bonne Journée
Cordialement

Bonjour a tous,

Une autre méthode pour réduire la taille du classeur, consiste à ajouter une procédure bidon en fin du module.

Exemple :

- Ajoutez une procédure Sub XX() (le End Sub se met automatiquement)

- Enregistrez le classeur

- Supprimez la procédure Sub XX()

- Enregistrez à nouveau

- Fermez le classeur

La taille du classeur à diminuée.

Il se peut qu'en le rouvrant et en exécutant les macros qui s'y trouvent, la taille du classeur réaugmente.

J'ai également constaté qu'après un plantage d'Excel (notamment lors d'utilisation de blocs With importants), la taille du classeur de récupération est fortement réduite. Allez savoir pourquoi !!

Bonne journée.

Bonjour Eric_angers,

Beau déterrage de sujet

Sinon pour info, après plantage, le classeur récupéré est en général un ".xlsb" = format binaire
Ce qui peut réduire considérablement la taille du fichier

A+

Bonjour BrunoM45

Oui en effet, mais en le réenregistrant au format Xlsm (en remplacement de l'ancien), la taille reste très diminuée.

Précision supplémentaire, il y a souvent plantage (sur mon ordi en tous cas), lors d'une exécution en mode pas à pas, dans des blocs With importants. Parfois même lors de l'écriture du code (toujours dans un bloc With).

A+

bonjour le fil,

comme le dit BrunoM45, un fichier binaire, type "*.xlsb" est inférieur en taille et ne cause pas autant de problèmes qu'un fichier "*.xlsm". Moi, je n'utilise que des fichier binaires.

@Eric_Angers, si excel se plante dans un "With...End With", il faut chercher pourquoi, n'y-a-t-il pas un "infinite loop" ? Moi, quand j'écris la code et je débug, j'ajoute souvent un "DoEvents" à l'intérieur d'un loop. Comme ça, je peux arreter la code avec CTRL+Break sans se planter. Plus tard, je supprime ce "DoEvents"

Bonsoir Bart,

Non rien de tout cela, pas de Loop dans les blocs With/End With en question. C'est uniquement en phase d'écriture du code que cela se produit ou lors de l'exécution en mode pas à pas. Il faut dire que dans certaines de mes applis, les blocs With sont assez long (+ de 200 lignes) avec à l'intérieur des sous blocs With, des boucles For Next et pas mal de IF End IF.

Sans prévenir, Excel se relance et, si le classeur à été sauvegardé récemment (save automatique) , il le rouvre sans autre commentaire. Sinon il ouvre un classeur de récupération.

Je connais bien le principe du DoEvents, je l'utilise aussi pour ne pas être bloqué. Je le supprime également lorsque tout fonctionne correctement car il a tendance à ralentir les traitements.

Merci pour ton aide

Bonne soirée

re,

n'y-a-t-il pas certains limites à With...End With, par exemple au max 7 (je pense que cela est le limite pour "Select Case"), peut-être ???

Re

Je n'ai pas connaissance d'une limite des blocs "With" ni même des "Select case". Si c'était le cas, Excel planterait aussi lors de l'exécution normale du code (hors débogage).

En tout cas merci .

Eric

Rechercher des sujets similaires à "taille fichiers xlsm"