Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 supprimer les lignes vides de la ligne 8 à la dernière ligne vide

  • Initiateur de la discussion Initiateur de la discussion Usine à gaz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Voilà une question que je ne m'étais pas posée jusqu'à présent lol

"Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete"" supprime toutes les lignes colonne "A" vide.

Mais est-il possible de supprimer les lignes colonne "A" vide à partir d'une ligne ?
Par exemple, dans le petit fichier test joint, je voudrais supprimer les lignes colonne "A" vide à partir de la ligne 8 jusqu'à la dernière ligne.

Pas certain que ce soit possible.
Jusqu'à maintenant, je n'ai pas trouvé...
Merci pour vos retours...
🙂
 

Pièces jointes

Dernière édition:
Re bonjour,
Je me suis aperçu que si la macro était lancée une première fois, cela fonctionnait. Du coup, plus de ligne vide entre celle du début et celle de fin.
Cependant, si on relance la macro, cela bugg
En rajoutant un simple "On Error Resume Next", plus de souci

VB:
Sub SupprimeLigne()
    On Error Resume Next
    xPreLig = 9                                 'Première ligne
    xDerlig = Range("A65000").End(xlUp).Row     'Dernière ligne
    Range("A" & xPreLig & ":A" & xDerlig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
@+ Lolote83
 
Merci Lolote 🙂
J'avais vu aussi et ajouté le On Error Resume Next
🙂
 
Salut le fil,
Je pense qu'il faut éviter de prendre l'habitude de balancer des Error Resume Next partout, surtout quand on peux l'éviter.
Ici, il suffit de tester si la colonne contient des vides
VB:
Sub SupprimeLigne()
    Dim xPreLig As Long
    xPreLig = 9                                 'Première ligne

    Dim xDerlig As Long
    xDerlig = Range("A65000").End(xlUp).Row     'Dernière ligne
    
    Dim TestingRange As Range
    Set TestingRange = Range("A" & xPreLig & ":A" & xDerlig)
    If WorksheetFunction.CountBlank(TestingRange) > 0 Then
        TestingRange.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End If
End Sub
 
Re-Bjr Lolote83 🙂, Bjr Valtrase 🙂

Pour tester sur d'autres colonnes, Sur Colonne B par exemple,
J'ai remplacé les A par des B et .... ça fonctionne pas.

Vous auriez le code pour supprimer les lignes colonne "B" vide à partir de la ligne 8 jusqu'à la dernière ligne ?
Un grand merci à vous deux
🙂
 
Re bonjour,
Si comme tu le dis, en remplaçant "A" par "B", cela devrait être OK. Par contre, si cela supprime bien les lignes vides de la colonne B (mais sans tenir compte - pas testé) que la colonne A soit vide ou non
Dis nous
@+ Lolote83
 
Re bonjour,
Si comme tu le dis, en remplaçant "A" par "B", cela devrait être OK. Par contre, si cela supprime bien les lignes vides de la colonne B (mais sans tenir compte - pas testé) que la colonne A soit vide ou non
Dis nous
@+ Lolote83
OUI : pour tester j'ai tenté mais ça ne fonctionne pas = il ne supprime rien si je mets B à la place de A
🙂
 
Re,
J'ai fait le test chez moi et cela supprime bien les lignes de la colonne B
VB:
Sub SupprimeLigneB()
    On Error Resume Next
    xPreLig = 9                                 'Première ligne
    xDerlig = Range("B65000").End(xlUp).Row     'Dernière ligne
    Range("B" & xPreLig & ":B" & xDerlig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Mais si une ligne de la colonne A n'est pas vide et que B est vide, cela supprime bien la ligne en question
@+ Lolote83
 
Re,
Par contre, si tu souhaites conservé les données de la colonne A et celle de la colonne B
Code:
Sub SupprimeLigneVide()
    Call RemonteLesDonnées("A")
End Sub

Sub RemonteLesDonnées(xCol)
    Application.ScreenUpdating = False
    xPreLig = 9                                     'Première ligne
    xDerLig = Range(xCol & "65000").End(xlUp).Row   'Dernière ligne
    For F = xDerLig To xPreLig Step -1
        If Cells(F, xCol) = Empty Then
            Cells(F, xCol).Delete Shift:=xlUp
        End If
    Next F
    Application.ScreenUpdating = True
End Sub

Lancer une première fois avec "A" puis "B" dans le code Call RemonteLesDonnées

En fait, on ne sais pas trop si tu souhaites ou pas conserver les données des colonnes précédemment testées
@+ Lolote83
 
Merci Lolote83 🙂

L'objet de mon #post1 (mon besoin) est bien de supprimer les lignes colonne "A" vide à partir de la ligne 8 jusqu'à la dernière ligne = c'est bon, ton code fonctionne bien.

L'objet de mon #post9 (test) est de supprimer les lignes colonne "B" vide à partir de la ligne 8 jusqu'à la dernière ligne ? sans tenir compte de la colonne A, c'est à dire si en A, c'est vide et pas en B, on garde la ligne
🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
534
Réponses
6
Affichages
335
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…