Menu

Suppression de ligne vide excel [Résolu/Fermé]

Messages postés
268
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
23 novembre 2018
-
Bonjour,

J'ai un problème avec ce code, j'ai des lignes qui ne se suppriment pas, car j'ai 2 cellules remplient sur la ligne.

Donc je voudrais prendre comme référence ma colonne B ou je sais que je vais remonter à la dernière ligne qui m’intéresse.

Mais je ne sais pas comment écrire le code pour qu'il prenne comme référence la colonne B et qu'il m’efface toutes les lignes vides ?

Merci pour votre aide.

Bonne soirée.

Pascal
Sub Effaceleslignesfantomes()

Dim last As Variant
Dim ligne_libre As Variant
last = Range("A" & Rows.Count).End(xlUp).Row
'MsgBox "La dernière ligne est la " & last & "ième" ' juste pour se contrôler ...
Rows(last + 1 & ":" & Rows.Count).Select
Selection.Delete Shift:=xlUp

End Sub


NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


Afficher la suite 

6 réponses

Messages postés
14498
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 juin 2019
1151
0
Merci
Bonjour,

suppression ligne si aucune cellule non vide

Sub Sup_ligne_vide()
    With Worksheets("feuil1")       'adaptez le nom de feuille
        Nb = .Range("B" & .Rows.Count).End(xlUp).Row        'ligne derniere cellule non vide colonne B
        'boucle sur colonne B en commencant par la fin
        For n = Nb To 1 Step -1
            If Application.CountA(.Rows(n)) = 0 Then        'zero cellule non vide
                .Rows(n).Delete     'suppression ligne
            End If
        Next n
    End With
End Sub
Messages postés
268
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
23 novembre 2018
0
Merci
Bonjour f894009,

Merci pour ton code, j'ai oublié de préciser que j'avais dans mes classeurs X feuilles et que je ne dois pas faire la dernière, et que ce code tourne avant la boucle.

Je ne sais pas quoi mettre pour atteindre les feuilles ?

Merci pour ton aide.

Bonne journée

Pascal
Messages postés
14498
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 juin 2019
1151
0
Merci
Re,

Sub Sup_ligne_vide()
    Dim sh As Worksheet
    
    Derniere_Feuille = "Feuil4"     'mettre le nom de la feuille a ne pas purger
    'boucle sur les feuilles
    For Each sh In Worksheets
        If sh.Name <> Derniere_Feuille Then     'nom feuille en cours different du nom derniere feuille
            With sh       'adaptez le nom de feuille
                Nb = .Range("B" & .Rows.Count).End(xlUp).Row        'ligne derniere cellule non vide colonne B
                'boucle sur colonne B en commencant par la fin
                For n = Nb To 1 Step -1
                    If Application.CountA(.Rows(n)) = 0 Then        'zero cellule non vide
                    .Rows(n).Delete     'suppression ligne
                    End If
                Next n
            End With
        End If
    Next
End Sub
Messages postés
268
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
23 novembre 2018
0
Merci
Merci f894009

Je fais des essais, je deviens fou avec mes codes.

Je te dis si cela fonctionne dans mon classeur.
Messages postés
268
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
23 novembre 2018
0
Merci
Bonjour f894009?

Je crois avoir trouvé mon souci, suite à une demande tu m'avais fait ce code, sauf qu'il m'efface toutes lignes avec comme référence colonne B(normal c'est ma demande), mais il dois commencer à partir de B18, car les lignes avant non pas de données, donc effacées et cela fait sauter mon tableau et tous les codes ne correspondent plus au tableau.

j'ai essayé de modifier mais comme dab, c'est pas bon.

J'ai mis "B18" mais il n'en veut pas.

Merci pour ton aide.

Bonne journée.

Sub Sup_ligne_vide()
Dim sh As Worksheet

Derniere_Feuille = "Feuil4" 'mettre le nom de la feuille a ne pas purger
'boucle sur les feuilles
For Each sh In Worksheets
If sh.Name <> Derniere_Feuille Then 'nom feuille en cours different du nom derniere feuille
With sh 'adaptez le nom de feuille
Nb = .Range("B" & .Rows.Count).End(xlUp).Row 'ligne derniere cellule non vide colonne B
'boucle sur colonne B en commencant par la fin
For n = Nb To 1 Step -1
If Application.CountA(.Rows(n)) = 0 Then 'zero cellule non vide
.Rows(n).Delete 'suppression ligne
End If
Next n
End With
End If
Next
End Sub
Messages postés
14498
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 juin 2019
1151
0
Merci
Bonjour,

Sub Sup_ligne_vide()
    Dim sh As Worksheet
    
    Derniere_Feuille = "Feuil4"     'mettre le nom de la feuille a ne pas purger
    'boucle sur les feuilles
    For Each sh In Worksheets
        If sh.Name <> Derniere_Feuille Then     'nom feuille en cours different du nom derniere feuille
            With sh       'adaptez le nom de feuille
                Nb = .Range("B" & .Rows.Count).End(xlUp).Row        'ligne derniere cellule non vide colonne B
                'boucle sur colonne B en commencant par la fin jusqu'a ligne 18
                For n = Nb To 18 Step -1
                    If Application.CountA(.Rows(n)) = 0 Then        'zero cellule non vide
                    .Rows(n).Delete     'suppression ligne
                    End If
                Next n
            End With
        End If
    Next
End Sub