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

Supprimer ligne si cellule vide

gourdin

XLDnaute Impliqué
Bonjour,

Je souhaite supprimer par macro toute les lignes de la plage "A5:A500" contenant des cellules vides
Pour cela je pensai pouvoir utiliser le code suivant :
Range("A5:A500").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Mais cela ne fonctionne pas.

Après recherche sur le net, il semblerai que les cellules que je pensais "vides" ne le sont pas en réalité en raison d'un copier coller préalable. En effet quand je selectionne une cellule soi-disant vide et que je supprime son contenu, celle ci est considérée alors comme vide par le code.

Avant de me lancer dans d'autres solutions (filtre, tri, ajout colonne, formule, boucle etc.) qui risquent d'être compliquée pour moi, pourriez vous me dire si vous connaissez une solution simple à ce problème ?

Merci
 

Chris401

XLDnaute Accro
Bonjour

Essaye en supprimant les espaces inutiles avant
VB:
For Each c In Range("A5:A500")
    c = Application.WorksheetFunction.Trim(c)
Next c
Range("A5:A500").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 

gourdin

XLDnaute Impliqué
Bonjour Chris

Cela ne fonctionne pas.
Message d'erreur : "Erreur d'exeution 1004 - Pas de cellule correspondante"
En pièce jointe un bout de mon fichier
Merci
 

Pièces jointes

  • forum_cellule_vide.xlsm
    131.1 KB · Affichages: 36

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Comme ceci ?
VB:
Option Explicit
Sub Ligne_supprimer_si()
    Dim c As Range
    Columns(1).Insert
    For Each c In Columns(2).SpecialCells(xlCellTypeConstants, 23)
        c.Offset(, -1).FormulaR1C1 = "=CODE(RC[1])"
    Next
    On Error Resume Next
    With Columns(1): .SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete: .Delete Shift:=xlToLeft: End With
End Sub
A bientôt
 

Discussions similaires

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