IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Supprimer toutes les lignes vides


Sujet :

Contribuez

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Luxembourg

    Informations forums :
    Inscription : Septembre 2007
    Messages : 120
    Points : 257
    Points
    257
    Par défaut Supprimer toutes les lignes vides
    Bonjour,

    Pour ceux que cela intéresse, une procédure qui peut s'avérer utile lorsque l'on travaille sur une feuille Excel qui comporte des interlignes vides à éliminer :

    La première étape consiste à déterminer la dernière ligne utilisée et à attribuer son numéro de ligne à la variable DerniereLigne. Voilà qui n’est pas aussi simple que l’on pourrait le croire, car la plage utilisée ne commence pas nécessairement à la ligne 1. En conséquence, DerniereLigne est calculée en déterminant le nombre de lignes de la plage utilisée, en ajoutant le numéro de la première ligne de la plage utilisée et en retranchant 1.

    La procédure emploie la fonction COUNTA d’Excel pour déterminer si une ligne est vide. Si cette fonction retourne 0 pour une ligne particulière, la ligne est vide. Notez que la procédure utilise une valeur négative pour le pas de la boucle For – Next. C’est nécessaire, car la suppression des lignes amène toutes les lignes subséquentes à se déplacer vers le haut dans la feuille de calcul. Si la boucle progressait du haut vers le bas, le compteur dans la boucle ne serait pas précis après la suppression d’une ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub SuppLigneVide()
    Dim DerniereLigne As Long
    Dim R As Long
     
    Range("A1").Select
    'Suppression des interlignes vides
    DerniereLigne = ActiveSheet.UsedRange.Row - 1
    DerniereLigne = DerniereLigne + ActiveSheet.UsedRange.Rows.Count
    Application.ScreenUpdating = False
        For R = DerniereLigne To 1 Step -1
            If Application.WorksheetFunction.CountA(Rows(R)) = 0 Then Rows(R).Delete
        Next R
    End Sub
    J'ai testé le code, il fonctionne.

    Bonne continuation

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Hello,

    Il y a quand même une différence fondamentale entre les deux codes, le code de Lorenzo va supprimer la ligne que si toutes les cellules de cette ligne sont vide tandis que le code de Ousk va supprimer chaque cellule vide.
    Le résultat obtenu n'est donc pas le même

    Lorenzo, tu peux simplifier ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SuppLigneVide()
    Dim R As Long
    Application.ScreenUpdating = False
     
    For R = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
        If Application.WorksheetFunction.CountA(Rows(R)) = 0 Then Rows(R).Delete
    Next R
     
    Application.ScreenUpdating = True
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Luxembourg

    Informations forums :
    Inscription : Septembre 2007
    Messages : 120
    Points : 257
    Points
    257
    Par défaut
    Bonjour ouskel'n'or,

    Merci pour cette méthode qui simplifie celle que j'ai proposée.

    A bientôt


    Bonjour Fring,

    Merci pour le correctif. Effectivement l'action a pour but de supprimer une ligne entière de la feuille de calcul.
    La méthode de ouskel'n'or est enregistrée dans mes notes et sera utile ultérieurement.

    A bientôt.

Discussions similaires

  1. Supprimer toutes les lignes en dessous d'une cellule
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2007, 13h50
  2. Supprimer/Masquer les lignes vides
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2007, 12h13
  3. supprimer toutes les lignes d'un flexgrid sauf la ligne de titre
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/08/2006, 10h39
  4. [VB 2005] Supprimer toutes les lignes d'un DataGridView
    Par Bob Langlade dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/01/2006, 16h03
  5. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26

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