J'ai un fichier Excel de plus de 7 Mo. Pour comprendre d'où vient le poids, j'ai utilisé la méthode décrite dans cette question .
J'ai réduit l'essentiel du poids à une feuille et j'ai vérifié ctrl+ Endquelle est la dernière cellule de cette feuille. Curieusement, cette cellule se trouvait dans la dernière ligne possible de la feuille (c'est-à-dire la ligne 1048576).
J'ai ensuite effacé le formatage de toutes les lignes inutilisées, puis, juste au cas où, j'ai sélectionné toutes les lignes vides (sous mes données) avec alt+ Shift+ ↓et alt+ Shift+ →, puis avec un clic droit et supprimé.
Cependant, après avoir sauvegardé le fichier, l'avoir fermé et rouvert, appuyer sur ctrl+ Endme renvoie toujours à la dernière cellule.
J'ai lu l'équivalent VBA de faire cela manuellement, et il semble que cette question SO se rapporte à la même chose - la propriété Worksheet.UsedRange .
Avant de plonger dans VBA, puis-je faire quelque chose manuellement pour résoudre ce problème?
Post-scriptum Avant de marquer cela comme un doublon, notez que j'ai intentionnellement épuisé les autres options dans ma recherche d'une réponse.
MODIFIER:
Pour clarifier, j'ai vu cette réponse (et essayé) et cet article de la KB (et essayé aussi) - pas de cigare. Idem avec cette réponse plus récente .
la source
Réponses:
J'apprécie les efforts supplémentaires que vous avez déployés pour documenter vos efforts. Je vous remercie.
Je réinitialise souvent des livres boursouflés en utilisant des méthodes qui ne fonctionnent pas pour vous. Il n'y a que deux différences que je peux identifier:
La première est que je n'ai jamais essayé de cliquer avec le bouton droit de la souris -> supprimer. Je suis un gars du clavier , donc je l' ai toujours utilisé Alt+ E+ D. Cela ne devrait avoir aucune importance, mais des choses étranges se sont produites.
La deuxième différence est que je n’ai jamais été bloqué comme vous, il est toujours réinitialisé après la sauvegarde. Big aide là-bas, non?
Quelques solutions possibles suivent:
Ballonnements horizontaux / verticaux
Aujourd'hui, j'ai eu un problème où mon VBA fusionnait des feuilles verticalement et ma feuille de calcul gonflée inexplicablement horizontalement. Au départ, j'étais confus et inquiet parce que je n'avais que des ballonnements verticaux et que je n'avais pas pensé à vérifier horizontalement, jusqu'à ce que ma tentative de réinitialisation échoue deux fois. S'il vous plaît, amusez-moi par souci d'exhaustivité et pour que cela ne vous arrive pas:
Oui, les deux lignes Ctrl+ Shift+ Endsont redondantes, mais je pense que vous pouvez survivre aux 15 frappes.
Vous ne devriez "pas" avoir besoin de fermer votre classeur après l'avoir sauvegardé, mais je ne le déconseillerai pas. Donner un coup de feu. Si cela ne fonctionne pas, essayez VBA très rapidement.
La manière VBA
N'ayez pas peur du grand méchant VBA, c'est un excellent outil et ce que nous faisons bien ne prend que quelques secondes.
?activesheet.usedrange.address
et appuyez sur Enter.activesheet.usedrange
et appuyez sur Enter. Notez que la première commande utilisait un?
et ceci non. En effet, le point d'interrogation est utilisé lorsque nous voulons que VBA affiche du texte afin de pouvoir afficher une valeur ou un statut. Si nous n'utilisons pas de point d'interrogation, nous demandons à VBA d'effectuer une action.?
et appuyez sur Enter.Feuilles de travail très cachées
La tâche finale consiste à rechercher des feuilles de calcul masquées. Non seulement caché , mais très caché (je ne l'invente pas).
ThisWorkbook
objet). Vous les reconnaîtrez parce qu'ils auront les noms de vos feuilles de calcul entre parenthèses.xlhidden
ouxlveryhidden
.xlvisible
.FYI: Une feuille très masquée n'est pas répertoriée dans le menu contextuel masquer / afficher dans Excel. C'est donc l'un des meilleurs moyens de protéger les configurations et les colonnes d'assistance.
Quelques autres conseils utiles
C'est beaucoup plus long que prévu, alors je vais essayer de conclure ...
Vérifiez votre mise en forme conditionnelle - comme pour les plages nommées, vous recherchez des conditions totalement fausses ou reproduites.
Vérifiez vos requêtes et vos modèles de données.
Vérifiez que vous n'avez pas d'images / de graphiques /
listobjects
dans un endroit difficile à trouver (le contrôle que nous avons effectué avec le gestionnaire de noms devrait permettre de détecter la plupart, mais pas la totalité d'entre eux).Vérifiez que vous ne modifiez pas les paramètres de configuration personnalisés (j’ai remarqué que la galerie de styles d’un collègue sur l’onglet Accueil avait le même accent de 20% et qu’elle développait des centaines. À l’aide de l’éditeur VBA, j’ai tapé
?activeworkbook.styles.count
et renvoyé plus de 19 000; à titre de comparaison, le mien en avait 47).Surveillez les mises en forme excessives - quelques centaines de milliers de lignes de nombres au format monétaire ne sont pas identiques à quelques centaines de milliers de lignes composées de bordures de cellules configurées comme un labyrinthe classé avec différentes couleurs et de nombreux formats, symboles et polices de nombres personnalisés.
Vérifiez les données elles-mêmes: quelques centaines de lignes sur 20 colonnes avec chaque cellule remplie à la limite seraient une cause embarrassante - mais possible - de gonflement
Et enfin, l'option nucléaire. Enregistrez chaque feuille séparément en tant que fichier texte CSV et importez-la dans un nouveau classeur ... cette solution fonctionnera à moins que vos données ne soient corrompues - mais reconstruire vos formats, vos connexions et bla bla bla pourrait s'avérer pénible.
la source
On m'a demandé de consulter un classeur Excel qui était gonflé à 60 Mo et était sujet à un crash. J'ai déterminé que beaucoup de feuilles avaient une formule et / ou une mise en forme allant jusqu'à la ligne 1048576. J'ai déterminé que 15 000 lignes satisferaient leurs besoins. Donc, à la ligne 15 001, j'ai fait un Ctrl + Maj + Fin ou Ctrl + Maj + Flèche bas. Sur les cellules en surbrillance, cliquez avec le bouton droit de la souris et cliquez sur Supprimé, sélectionnez Ligne entière. J'ai changé toutes les plages dans les formules de A: Z à $ A1: Z $ 15000. L'enregistrement du fichier a supprimé les lignes en excès de toutes les feuilles sauf une. Le classeur est maintenant réduit à 10 mb. J'ai essayé plusieurs options pour supprimer les lignes en excès, mais rien n'a fonctionné. J'ai lu un article pour mettre en évidence la plage et changer la hauteur de la ligne. J'ai donc sélectionné une ligne vide et modifié la hauteur de la ligne. J'ai supprimé à nouveau les lignes entières et sauvegardé la feuille de calcul. Cette fois, la dernière ligne est maintenant 15000. La taille du fichier est maintenant de 3,6 Mo. J'espère que cela t'aides.
la source
Ce qui a résolu ce problème pour moi était le suivant (je ne me souviens pas de cette solution quelque part sur un forum Excel):
la source
save / close / open devrait réinitialiser UsedRange.
Clear formatting
n'est pas assez. Vous devriezClear
, ou mieux,Delete
il range et cols après votre dernière cellule attendue.Pour votre problème de taille, Excel 2013 contient un complément intéressant appelé Inquire , qui vous permet d'analyser votre page Web, ainsi qu'une option " Nettoyer le formatage des cellules en excès ".
la source