XL 2021 Supprimer les lignes qui contiennent des cellules vides dans les colonnes "A à M" à partir de la ligne 5

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

Me revoilou pour un code que je n'arrive pas à faire correctement.
Dans mon fichier test joint : Supprimer les lignes qui contiennent des cellules vides dans les colonnes "A à M" à partir de la ligne 5

Pour l'instant, mes tentatives ne fontionnent pas bien.
Auriez-vous le bon code ?
Un grand merci à toutes et à tous :)
Je continue mes tentatives...
:)
 

Pièces jointes

  • supprimer vides.xlsm
    17.3 KB · Affichages: 1
Solution
Bonjour Lionel

je te propose ce code

VB:
Sub Macro1()
Dim Derlig&
Derlig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub

Il te reste à l'associer avec un bouton par exemple mais cela tu sais le faire ;)

Merci de ton retour

Phil69970

XLDnaute Barbatruc
Bonjour Lionel

je te propose ce code

VB:
Sub Macro1()
Dim Derlig&
Derlig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub

Il te reste à l'associer avec un bouton par exemple mais cela tu sais le faire ;)

Merci de ton retour
 

Phil69970

XLDnaute Barbatruc
Lionel

Avec ce code amélioré je supprime que les cellules vides pas la ligne entière à confirmer que tu veux bien cela

VB:
Sub Macro1()
Dim Derlig&, c As Range
Derlig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each c In Worksheets("Feuil1").Range("A5:M" & Derlig).Cells
    If c = "" Then
        'on a trouvé au moins 1 cellule vide
        Worksheets("Feuil1").Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
        Exit For
    End If
Next
End Sub
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Lionel

Avec ce code amélioré je supprime que les cellules vides pas la ligne entière à confirmer que tu veux bien cela

VB:
Sub Macro1()
Dim Derlig&, c As Range
Derlig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each c In Worksheets("Feuil1").Range("A5:M" & Derlig).Cells
    If c = "" Then
        'on a trouvé au moins 1 cellule vide
        Worksheets("Feuil1").Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
        Exit For
    End If
Next
End Sub
C'est ton 1er code qui me convient car ce sont bien les lignes que je doit supprimer, pas uniquement les cellules.
Mais je le garde aussi, il pourra me servir.
Grand merci à toi.
;)
:)
 

Phil69970

XLDnaute Barbatruc
Lionel

Attention
Mon 1er code Et le 2eme code ne supprime QUE les cellules vides

La différence entre mes 2 codes c'est que si il n'y a pas de cellules vides dans le 1er code le code plante

Si tu veux supprimer la ligne entière

Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete Shift:=xlUp

Et seulement la cellules vide

Range("A5:M" & Derlig).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
Et dans l'exemple que tu as fait si on supprime la ligne entière des que l'on trouve une cellule vide alors il ne te reste plus qu'une page blanche !!
 

Discussions similaires

Statistiques des forums

Discussions
312 935
Messages
2 093 740
Membres
105 805
dernier inscrit
belgacem.nahali