Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 15 sur 15
  1. #1
    Invité régulier
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 5
    Points
    5

    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 expérimenté 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 : 526
    Points
    526

    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 Expert
    Inscrit en
    novembre 2006
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 535
    Points : 1 453
    Points
    1 453

    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
    Invité régulier
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 5
    Points
    5

    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 expérimenté 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 : 526
    Points
    526

    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 Expert
    Inscrit en
    novembre 2006
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 535
    Points : 1 453
    Points
    1 453

    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 :
    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 expérimenté 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 : 526
    Points
    526

    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 Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 224
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 224
    Points : 18 562
    Points
    18 562

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

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    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
    Invité régulier
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 5
    Points
    5

    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 Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 224
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 224
    Points : 18 562
    Points
    18 562

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

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    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 expérimenté 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 : 526
    Points
    526

    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
    Invité régulier
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 5
    Points
    5

    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 Confirmé Sénior
    Avatar de jacques_jean
    Homme Profil pro Jacques THÉRY
    Inactif
    Inscrit en
    janvier 2006
    Messages
    3 485
    Détails du profil
    Informations personnelles :
    Nom : Homme Jacques THÉRY
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : janvier 2006
    Messages : 3 485
    Points : 10 143
    Points
    10 143

    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
    Invité régulier
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 9
    Points : 5
    Points
    5

    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
    Invité de passage
    Inscrit en
    décembre 2008
    Messages
    1
    Détails du profil
    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.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •