La suppression de lignes dans Excel ne réinitialise pas la dernière cellule (plage utilisée)

4

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 .

t0mgs
la source
1
Juste pour confirmation: avez-vous essayé de ne conserver que la feuille de calcul problématique dans votre dossier et c'est vraiment celle qui est responsable de la taille? La suppression de lignes et de colonnes vides et l'enregistrement ne réduisent-ils pas la taille du fichier? Avez-vous des images / pièces jointes dans votre fichier? Je sais que la plupart d’entre elles sont répertoriées dans vos liens, mais il est toujours utile de répertorier les étapes exactes que vous avez suivies.
Máté Juhász
Répondez à toutes vos questions en respectant l'ordre suivant: cette feuille est le coupable. La suppression de lignes vides ne semble pas avoir d'incidence sur la taille du fichier, aucune image / pièce jointe ni aucun flux de données dans le classeur. Merci d'avoir joué! :)
t0mgs
VBA dans le classeur pouvant s'exécuter à l'ouverture?
Patrick Honorez
@ PatrickHonorez pas que je puisse dire.
t0mgs

Réponses:

3

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:

  1. Commencez par fermer toutes les autres sessions Excel afin que le classeur actuel soit le seul classeur ouvert.
  2. Allez à la de vos données sur le côté droit et sélectionnez la première colonne vide - la colonne entière.
  3. Ctrl+ Shift+ .
  4. Alt+ E, alors D.
  5. Ctrl+ Shift+ End.
  6. Alt+ E, alors D.
  7. Ctrl+Home
  8. Faites défiler jusqu'au bas de vos données
  9. Sélectionnez la première ligne vide - la ligne entière.
  10. Ctrl+ Shift+ .
  11. Alt+ E, alors D.
  12. Ctrl+ Shift+ End.
  13. Alt+ E, alors D.
  14. Ctrl+Home
  15. Ctrl+S

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.

  1. Assurez-vous que la feuille de calcul suspecte est ouverte et active.
  2. Alt+ F11pour ouvrir l'éditeur.
  3. Ctrl+ Gpour ouvrir la fenêtre immédiate.
  4. Tapez ?activesheet.usedrange.addresset appuyez sur Enter.
  5. Si la plage semble normale ( pas excessivement grande), le problème ne vient pas de votre plage.
  6. Si la plage est excessivement grande. puis tapez activesheet.usedrangeet 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.
  7. Une fois que vous avez appuyé sur Enter, placez votre curseur sur la ligne où vous avez utilisé ?et appuyez sur Enter.
  8. si la plage a changé, vous avez terminé. Si c'est pareil, alors vous avez toujours un problème.

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

  1. L'explorateur de projet devrait déjà être ouvert sur le côté gauche de l'écran. Appuyez sur Ctrl+ Rsi ce n'est pas le cas.
  2. La fenêtre présente des différences mineures entre les versions d'Excel, mais elles partagent toutes le même comportement d'arborescence de développement / réduction. 
  3. Le nombre de projets affichés dépend du nombre de classeurs et de modules complémentaires Excel ouverts. Si vous fermez tous les autres classeurs et que plusieurs projets sont affichés, il reste encore quelque chose que nous pourrons traiter en détail plus tard.
  4. Pour l'instant, recherchez votre projet et développez les dossiers pour exposer les objets du classeur (les feuilles de calcul individuelles et l' ThisWorkbookobjet). Vous les reconnaîtrez parce qu'ils auront les noms de vos feuilles de calcul entre parenthèses.
  5. Une fois trouvé, recherchez un nom qui ne figure pas dans votre classeur avec un onglet de feuille de calcul.
  6. si vous en trouvez un, sélectionnez-le dans la fenêtre de l'explorateur et accédez à la fenêtre des propriétés (sous l'explorateur ou F4).
  7. Faites défiler vers le bas pour trouver visible, il devrait être l'une des deux valeurs: xlhiddenou xlveryhidden.
  8. Cliquez à l'intérieur de la valeur pour ouvrir un menu déroulant, puis sélectionnez xlvisible.
  9. Si ce n'est ni l'un ni l'autre, alors vous avez sélectionné la mauvaise feuille et éventuellement le mauvais projet, - vérifiez bien vos sélections. 
  10. Si vous avez trouvé et non caché les feuilles, revenez à chacune d'entre elles et réinitialisez ces plages pour voir si votre livre est réduit (n'oubliez pas de masquer à nouveau les feuilles.

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.

  1. Nous en avons terminé avec VBA, fermez donc l'éditeur et revenez à Excel. Appuyez sur Ctrl+ F3pour ouvrir le gestionnaire de noms.
  2. Recherchez les plages nommées inattendues. En règle générale, je ne recommande pas de supprimer des plages nommées, sauf si vous connaissez très bien votre classeur, car de nombreuses solutions Excel / VBA productives ne fonctionneront pas correctement si vous supprimez une plage dont elles ont besoin. Toutefois, si vous trouvez une plage contenant des erreurs, pointant vers des classeurs inexistants, référençant des plages inutilisées ou comportant une autre valeur manifestement incorrecte, elles sont prêtes à être supprimées.

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 / listobjectsdans 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.countet 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.

Profondément inconscient
la source
1
Désolé pour le désordre. périphérique d'entrée était un s7. a commencé la réponse hier et a essayé de faire des déclarations cohérentes, ou à tout le moins, d'utiliser une grammaire intelligible ... c'était une bataille perdue d'
avance
2
Merci pour toute l'aide sur mon premier message. Maintenant, j'ai l'espoir réaliste qu'une équipe de rédacteurs me suivra à travers chaque fil en s'assurant que les virgules sont correctement placées sous un point-virgule et que chaque inflexion est mise en italique pour mettre l'accent.
ProfondémentOblivious
1
@ t0mgs Btw, savez-vous que cliquer sur le libellé "édité ..." situé au-dessus des informations utilisateur du dernier éditeur conduira à l' historique des révisions ? -§- ProfondémentOblivieux, lol. Pas probable! PS Faites-nous savoir si quelque chose a réellement fonctionné ici.
robinCTS
0

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.

RobertR
la source
0

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

  1. Ouvrez une feuille vierge et voyez quelle est la hauteur de ligne par défaut.
  2. Retournez à la feuille problématique et sélectionnez toutes les lignes que vous avez essayé de supprimer (mais qui apparaissent toujours après avoir été "supprimées"). Une fois sélectionné, définissez la hauteur sur le nombre par défaut indiqué à l’étape 1.
  3. Sélectionnez à nouveau toutes les lignes et supprimez-les, comme indiqué par l'OP. Désormais, ces lignes inutilisées doivent disparaître et la taille du fichier doit être considérablement réduite.
volotec
la source
-1

save / close / open devrait réinitialiser UsedRange. Clear formattingn'est pas assez. Vous devriez Clear, ou mieux, Deleteil 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 ".

Patrick Honorez
la source
1
J'ai supprimé les lignes ... c'est indiqué dans la question. Je vais voir tho Renseignez-
t0mgs
1
Patrick - Inquire ne fonctionne pas dans ce cas. Cela efface le formatage, mais le problème persiste.
t0mgs