Suppression lignes si cellules vides Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
J
Julie444
Jeune membre
Jeune membre
Messages : 25
Inscrit le : 14 juillet 2018
Version d'Excel : 2013

Message par Julie444 » 26 juillet 2018, 13:00

Bonjour,

Après compilation de plusieurs fichiers excel en un seul, j'aimerais supprimer certaines lignes. La ligne doit être supprimée si les cellules des colonnes M, N et O sont vides, alors j'ai tenté le code que voici :
Sub Delete()
Dim i As Integer
With ThisWorkbook.Sheets("D221_hors_zone")
For i = .Range("M" & "N" & "O" & .Rows.Count).End(xlUp).Row To 2 Step -1
 If .Range("M" & "N" & "O" & i).Value = "" Then
    Rows(i).Delete
    End If
   Next i
End With
MsgBox ("task complete!!!")
End Sub
Mais il ne fonctionne pas, quelqu'un saurait-il me dire ce qui bloque ?
Je vous remercie par avance.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 26 juillet 2018, 13:09

Bonjour

A essayer
Sub Delete()
Dim i As Integer

With ThisWorkbook.Sheets("D221_hors_zone")
For i = .Range("M" & .Rows.Count).End(xlUp).Row To 2 Step -1
   If .Range("M" & i) = "" And .Range("N" & i) = "" And .Range("O" & i) = "" Then Rows(i).Delete
Next i
End With
MsgBox ("task complete!!!")
End Sub
Si ok, merci de cloturer le fil en cliquant sur le petit v en haut à droite de la fenetre lors de votre réponse

Cordialement
@+ Dan ;)
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'349
Appréciations reçues : 201
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr 32 bits

Message par ric » 26 juillet 2018, 13:20

Bonjour à tous,

Excel 2016 refuse Sub Delete() > "Le membre existe déjà dans un module objet dont le présent module est dérivé."

Donc, utiliser plustôt > Sub DeleteLignes() ou n'importe quoi autre de "Delete" :roll:


ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 26 juillet 2018, 13:39

Bonjour, Salut Dan !

A essayer :
Sub Delete()
    Dim i&, n&, rr As Range
    With ThisWorkbook.Sheets("D221_hors_zone")
        n = .Cells.SpecialCells(xlCellTypeLastCell).Row
        Set rr = .Rows(n + 1)
        For i = 2 To n
            If .Cells(i, 13) & .Cells(i, 14) & .Cells(i, 15) = "" Then
                Set rr = Union(rr, .Rows(i))
            End If
        Next i
        rr.Delete
    End With
    MsgBox ("task complete!!!")
End Sub
Cordialement.
J
Julie444
Jeune membre
Jeune membre
Messages : 25
Inscrit le : 14 juillet 2018
Version d'Excel : 2013

Message par Julie444 » 27 juillet 2018, 15:18

Merci beaucoup, MFerrand, ton code fonctionne parfaitement; mille mercis.

Bonne continuation.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message