1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 8
    Points
    8

    Par défaut [Excel] Comment supprimer réellement des lignes vides ?

    Bonjour,

    Certaines actions créent malencontreusement un très grand nombre de lignes vide en fin de fichier excel : on passe d'un coup de 50 lignes utiles (par exemple) à 65536 lignes !
    (cela m'est arrivé plusieurs fois et je récupère souvent des fichiers d'autres personnes avec le même problème.)

    Malheureusement, le delete de lignes ne permet pas de réduire le nombre de lignes total dans le fichier : si un fichier a N lignes et que vous supprimez les lignes 10 à 20, la ligne 21 va se retrouver en 10 et ainsi de suite, mais il y aura 10 lignes vides de plus en fin de fichier qui en contiendra toujours N.

    Avec 65536 lignes pour seulement quelques centaines de lignes actives en début de fichier, ce n'est pas pratique d'utiliser l'ascenseur !

    Comment faire pour supprimer REELLEMENT ces lignes vides de fin de fichier ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 445
    Points : 580
    Points
    580

    Par défaut

    Bonjour,

    Je suppose que ce genre de problème peut être lié à une bêtise courante lors d’un formatage, qui consiste à sélectionner des colonnes entières.

    As-tu essayé, N étant la dernière ligne, de sélectionner les lignes N + 1 à 65536 et de les supprimer, PUIS d’enregistrer, car la mise à jour de la dernière cellule n’est pas faite, tant que l’on enregistre pas.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 549
    Points : 1 673
    Points
    1 673

    Par défaut

    Pourtant, l'ascensseur est automatiquement configuré pour que son echelle soit en rapport avec le nombre de ligne effectivement remplie
    tu as une possibilité, si tu veux ne voir que tes cellule utiles, c'est de masquer les ligne et colonne non remplie (format/ligne/masquer)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 8
    Points
    8

    Par défaut

    alsimbad : c'est une (assez) bonne idée mais l'ascenseur est tout de même un peu "perturbé" : il occupe tout l'espace ...

    Bigalo : Ton idée ne fonctionne pas : j'ai sélectionné les lignes, puis clique droit --> suppression, puis enregistrer : c'est pareil, j'ai toujours mes 65536 lignes.

  5. #5
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 445
    Points : 580
    Points
    580

    Par défaut

    Je peux pas faire beaucoup plus sans accès au fichier

    Y a-t-il des formules et/ou des noms définis qui font référence à des colonnes entières ?
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 549
    Points : 1 673
    Points
    1 673

    Par défaut

    Bigalo, je ne pense pas qu'il y ait un probleme dans le fichier de lesjno. il a 65536 lignes comme tout les fichiers excel davant 2007. son probleme n'est pas une ligne ou une cellule qui serait pleine en bout de fichier, mais bel et bien qu'il ne veut pas de la zone vide
    lesjno tu as une autre possibilité pour ne pas la voir, mais c'est en vba et c'est une limitation de la zone accessible, ce qui te permet de travailler sur une zone préétablie, mais je ne pense pas que cela mette ton ascenceur a l'echelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub a1g26()
    Sheets(1).ScrollArea = "A1:g26"
    Range("A1:g26").Select
    End Sub
    et après ça, ben faudra surement que tu te contente comme tout le monde, de devoir faire avec.

  7. #7
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 445
    Points : 580
    Points
    580

    Par défaut

    Bonsoir,

    Citation Envoyé par alsimbad Voir le message
    Bigalo, je ne pense pas qu'il y ait un probleme dans le fichier de lesjno. il a 65536 lignes comme tout les fichiers excel davant 2007.
    Tu as probablement raison. J’ai été induit en erreur par cette phrase :

    Citation Envoyé par lesjno Voir le message
    Certaines actions créent malencontreusement un très grand nombre de lignes vide en fin de fichier excel : on passe d'un coup de 50 lignes utiles (par exemple) à 65536 lignes !
    Dans ce cas, la seule solution est effectivement de masquer les lignes au-delà de la dernière ligne "utile" ou de réduire à 0 leur hauteur !
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  8. #8
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 851
    Points : 23 550
    Points
    23 550
    Billets dans le blog
    4

    Par défaut

    Bonsoir

    Une autre solution, sans VBA, est d'utiliser la barre d'outils Boite à outils et de cliquer sur Propriétés.

    On a alors accès directement à la propriété ScrollArea

    Cela étant, le fait de supprimer des lignes n'enlève pas des lignes à la feuille Excel. Une feuille Excel (antérieure à XL2007) possède toujours 65536 lignes et 256 colonnes, et une feuille XL2007 possède toujours 1048576 lignes sur 1024 colonnes.
    Images attachées Images attachées  
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    L'inconvénient des mauvaises habitudes de codage, c'est qu'il faut s'en défaire...

    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER (en bas à droite d'un message)
    ---------------

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 8
    Points
    8

    Par défaut

    Bonjour et merci pour les idées.

    Malheureusement, ce n'est pas idéal. L'idée de la propriété du ScrollArea est bonne, mais cela ne modifie pas pour autant la taille du curseur dans l'ascenseur. De plus, cette propriété n'est pas enregistrée lors de la sauvegarde du fichier, il faudrait fixer la zone en VBA, ce qui n'est vraiment pas pratique.

    Vous trouverez ci joint un exemple de fichier excel avec 65636 lignes (pour faire cela, par exemple, ouvrez un fichier excel, faites Ctrl fleche bas : normalement vous êtes sur la ligne 65636 (j'ai excel 2000). Là, vous écrivez quelque chose sur la ligne et ensuite vous sélectionnez cette ligne et vous la supprimez ... vous obtenez alors un fichier vide de 65636 lignes avec un tout petit curseur et une impossibilité de réduire ce nb de lignes.)

    On pourrait rapprocher ce comportement de celui de l'indice courant dans une table d'une base de donnée : l'indice est incrémenté à chaque nouvel enregistrement et le fait de supprimer des enregistrements de la table ne modifie pas la valeur de l'indice courant. Ici, avec Excel, c'est la même chose : l'indice "dernière ligne" prend la valeur de la dernière ligne utilisée et on ne peut pas agir sur cette valeur, contrairement à une base de donnée dont l'indice courant d'une table est modifiable manuellement.
    N'y a-t-il vraiment pas moyen d'atteindre cet indice "dernière ligne" caché ?
    Fichiers attachés Fichiers attachés

  10. #10
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 851
    Points : 23 550
    Points
    23 550
    Billets dans le blog
    4

    Par défaut

    En supprimant les lignes et/ou les colonnes vides, puis en enregistrant le fichier, Excel nettoie les lignes et/ou colonnes. CTRL+END le montre. Après la sauvegarde, les curseurs dans les barres de défilement sont adaptés à la nouvelle taille réelle de la zone de feuille utilisée.

    Attention. Je parle bien de supprimer les lignes, pas d'en effacer le contenu.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    L'inconvénient des mauvaises habitudes de codage, c'est qu'il faut s'en défaire...

    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER (en bas à droite d'un message)
    ---------------

  11. #11
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 445
    Points : 580
    Points
    580

    Par défaut

    Bonjour lesjno,

    J’ai ouvert ton fichier sous Excel 2004 (Mac), et l’ascenseur se comporte normalement. En cliquant sur la touche de fonction F5, puis sur le bouton Cellules..., puis sur en sélectionnant Dernière cellule, le bouton OK sélectionne la cellule A1.

    Cmme signalé précédemment, la mise à jour de la dernière cellule ne se fait pas tant qu’on enregistre pas le fichier.

    Le problème sur ton poste est peut-être lié à ta version d’Excel 2000 : Microsoft sort en général 1 à 3 révisions pour chaque version d’Office pour corriger des bugs. Qu’obtiens-tu comme indication de version, quand tu choisis A propos de Microsoft Excel dans le menu "?" (Aide) ?

    J’ai même fait le test que tu décris

    • Création d’un fichier
    • Ctrl + flèche bas
    • Saisie de quelque chose en A65536
    • Suppression de la ligne


    avec Excel 97 SR2.

    J’ai bien un petit curseur pour l’ascenseur, ce qui est normal, car à ce stade la dernière cellule est encore en ligne 65536.

    Mais l’enregistrement du fichier ramène les choses à la normale : l’ascenseur reprend des proportions plus classques, et la dernière cellule devient la cellule A1.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 8
    Points
    8

    Par défaut

    Ma version excel est la suivante :

    Excel2000 (9.0.8948 SP-3)

    D'après ce que vous dites (et vous en apportez la preuve), c'est bien un bug qui a déjà été corrigé dans les versions récentes d'Excel.
    Hélas, dans ma boite, on en change pas souvent de version, donc je vais faire remonter l'info ... et vivre avec jusqu'à ce qu'on ait une nouvelle version d'Excel.

    Merci à tous pour cette aide !

    Bonne journée.

  13. #13
    Expert éminent sénior
    Avatar de jacques_jean
    Homme Profil pro
    CBPDI
    Inscrit en
    janvier 2016
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CBPDI

    Informations forums :
    Inscription : janvier 2016
    Messages : 333
    Points : 14 404
    Points
    14 404

    Par défaut

    Bonjour Lesjno,

    Ma version : Excel 2000 (9.0.2812).

    J'ai fait la même chose que Bigalo sur votre fichier.

    En sélectionnant les lignes (N° de lignes et non cellules comme le précise Pierre Fauconnier) de 65536 à 2 puis clic droit puis "Supression" puis "Enregistrer" tout rentre dans l'ordre également.

    C'était pour vérifier que cela fonctionnait sur votre feuille car il y a longtemps que j'utilise cette procédure pour dépanner par exemple des utilisateurs qui ne la connaissent pas et qui se demandent pourquoi ils ne peuvent plus ajouter une ligne sur leur feuille.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 8
    Points
    8

    Par défaut

    Effectivement, ça marche !
    Il faut donc faire "enregistrer" juste après la commande de suppression.
    C'est bon à savoir !

    Merci !!!

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : décembre 2008
    Messages : 1
    Points : 1
    Points
    1

    Par défaut suppression de lignes vides en fin de fichier


    Bravo et Merci pour le truc. Il y a des années que je cherche mais je n'avais pas vu la nécessité d'enregistrer immédiatement après la suppression des lignes excédentaires.

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    novembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : novembre 2016
    Messages : 1
    Points : 0
    Points
    0

    Par défaut

    La vraie et seule vraie solution est la suivante... merci de ne pas répondre quand vous ne connaissez pas la réponse exacte, ça permet aux autres de gagner du temps...

    " if you want to restrict the scrolling of an Excel worksheet to a specific range, use the worksheet.scrollarea property. For more on it see Excel VBA help.

    An example that only shows a1:s150 and limits scrolling as well as a way to undo the limits:

    Sub hideExtra()
    With ActiveSheet
    .Range(.Range("t1"), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True
    .Range(.Range("a151"), .Cells(.Rows.Count, 1)).EntireRow.Hidden = True
    .ScrollArea = "a1:s150"
    End With
    End Sub
    Sub showAll()
    With ActiveSheet.Cells
    .EntireColumn.Hidden = False
    .EntireRow.Hidden = False
    .Parent.ScrollArea = ""
    End With
    End Sub
    "
    Macro fournie par:
    Tushar Mehta (Technology and Operations Consulting)
    www.tushar-mehta.com (Excel and PowerPoint add-ins and tutorials)
    Microsoft MVP Excel 2000-Present

  17. #17
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    3 758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 3 758
    Points : 6 736
    Points
    6 736

    Par défaut

    Bonjour

    Ce fil date de 2011 et les solutions à base de scrollarea ont déjà été données au #6 et #8...
    Chris

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  18. #18
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    6 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 6 871
    Points : 13 457
    Points
    13 457

    Par défaut


    Bonjour !

    Qui plus est :

    • ici ce n'est pas le forum VBA ‼

    conformément aux règles de ce forum !
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

  19. #19
    Expert confirmé

    Profil pro
    Inscrit en
    juillet 2012
    Messages
    3 189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2012
    Messages : 3 189
    Points : 5 362
    Points
    5 362
    Billets dans le blog
    5

    Par défaut

    Et en troisième point, la vraie et seule solution est celle qui répond à la question posée

    ici c'était de supprimer les lignes "vides" mais inclues dans la plage active de la feuille .... générant un ascenseur démeusuré, mais surtout un poids du fichier très important pour rien.

    pas de restreindre la zone de Scroll, qui n'était qu'une alternative proposée, ressemblant plutôt à un système D


    bref .... copier une aide "anglaise", c'est certes louable dans la démarche, mais il y a la forme (présenter sa proposition avec un peu plus d'humilité) et le fond (précision de la réponse vis à vis de la question)

  20. #20
    Membre chevronné
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    1 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 1 270
    Points : 2 089
    Points
    2 089

    Par défaut

    Un pouce vert à joe.levrai (surtout -mais pas uniquement- en raison de l'une de ses phrases).
    A BluePacificDream : un des pouces rouges est de moi (je signe toujours mes "pouces").

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment supprimer des lignes vides ?
    Par chanteur06 dans le forum Débuter
    Réponses: 3
    Dernier message: 10/03/2013, 00h31
  2. Supprimer des lignes vides dans un label
    Par benjhe dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/12/2007, 09h57
  3. Supprimer des lignes vides
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/11/2007, 20h32
  4. supprimer des lignes vides
    Par Medmidou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/10/2007, 14h51
  5. [excel]comment supprimer une colonne vide...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2005, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo