macro pour supprimer des lignes contenant des cellules vides

tapha20

XLDnaute Occasionnel
bjr


je chercher à élaborer une macro qui supprime des lignes vides dans ce classeur joint.

la macro aura pour fonction de supprimer les lignes contenant des celulles vides en colonne B.

Exemple: la première ligne contient une celulle vide qui est B1 donc onsupprime la ligne.


Cordialement
 

Pièces jointes

  • Classeur1.xls
    25.5 KB · Affichages: 122
  • Classeur1.xls
    25.5 KB · Affichages: 129
  • Classeur1.xls
    25.5 KB · Affichages: 130

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : macro pour supprimer des lignes contenant des cellules vides

Bonjour Tapha,

avec ce code
Code:
Sub Supprime()
Dim cel As Range
For Each cel In Range("B1:B" & Range("B65535").End(xlUp).Row)
If cel.Value = "" Then Rows(cel.Row).Delete
Next cel
End Sub
ou celui-ci puisque les lignes qui semblent vides contiennent un espace
Code:
Sub Supprime()
Dim cel As Range
For Each cel In Range("B1:B" & Range("B65535").End(xlUp).Row)
If cel.Value = " " Then Rows(cel.Row).Delete
Next cel
End Sub

à+
Philippe
 

Gorfael

XLDnaute Barbatruc
Re : macro pour supprimer des lignes contenant des cellules vides

Salut tapha20 et le forum
J'avais pensé à
Code:
Dim X As Range
Set X = Range([B2], Cells(Cells(Rows.Count, "A").End(xlUp).Row, "B")).SpecialCells(xlCellTypeBlanks)
If Not (X Is Nothing) Then X.EntireRow.Delete
mais ça ne fontionnait pas. j'ai donc fait
Code:
Dim X As Long
For X = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Cells(X, "B") = "" Then Rows(X).Delete
Next X
Pas plus de résultat ! J'ai donc fait
Code:
Dim X As Long
For X = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Cells(X, "B") = " " Then Rows(X).Delete
Next X
qui m'efface bien les cellules qui semblent vides mais contiennent un espace !
A+
 

Si...

XLDnaute Barbatruc
Re : macro pour supprimer des lignes contenant des cellules vides

salut Tous

Si... tu as plusieurs lignes consécutives à supprimer, prends plutôt la dernière macro de Gorfael.
Si... tu as des lignes avec "" ou " " ou " ", tu auras intérêt à choisir plutôt celle-ci
Code:
Sub supprime()
  Dim L As Long
  Application.ScreenUpdating = False
  For L = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Trim(Cells(L, "B")) = "" Then Rows(L).Delete
  Next
End Sub
 
Haut Bas