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

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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…