Supprimer les lignes contenants 3 fois la valeur 0 dans des colonnes contigues

christ91

XLDnaute Nouveau
Bonjour,

J'ai un tableau pour lequel je souhaiterai supprimer les lignes qui contiennent dans 3 colonnes contiguës la valeur 0

exemple dans le fichier joint je voudrais supprimer les lignes 3 et 6

bien évidement, je n'ai jamais le même nombre de ligne dans mon tableau.

Quelqu'un aurait-il une idée de macro pour cela ?

Merci
Christophe
 

Pièces jointes

  • test_1.xlsx
    8.1 KB · Affichages: 45
  • test_1.xlsx
    8.1 KB · Affichages: 37
  • test_1.xlsx
    8.1 KB · Affichages: 38

mutzik

XLDnaute Barbatruc
Re : Supprimer les lignes contenants 3 fois la valeur 0 dans des colonnes contigues

bonjour

mets le code suivant dans un module, cela devrait le faire

Sub SupprLignes()
Dim lig, col, i, j, nb

lig = Range("A" & Rows.Count).End(xlUp).Row
col = Range("A1").End(xlToRight).Column
nb = 0

For i = lig To 1 Step -1
For j = 2 To col
Cells(i, j).Select
If Cells(i, j) = 0 Then
nb = nb + 1
If nb > 2 Then Rows(i).EntireRow.Delete
Else: nb = 0
End If
Next j
nb = 0
Next i

End Sub
 
G

Guest

Guest
Re : Supprimer les lignes contenants 3 fois la valeur 0 dans des colonnes contigues

Bonjour,

Solution possible parmi d'autres:
Code:
Sub suppr()
    Dim r As Range, c As Range, plg As Range
    Dim i As Byte
    With ActiveSheet.Range("A1").CurrentRegion
            For Each r In .Rows
                i = 0
                For Each c In r.Cells
                    i = Array(0, i + 1)(-1 * (c = 0))
                    If i = 3 Then
                        If plg Is Nothing Then Set plg = r Else Set plg = Union(r, plg)
                        Exit For
                    End If
                Next c
            Next r
        If Not plg Is Nothing Then plg.Delete xlShiftUp
    End With
End Sub

A+

[Edit] hello Mutzik:)
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
22
Affichages
785

Statistiques des forums

Discussions
312 250
Messages
2 086 612
Membres
103 262
dernier inscrit
Grandeourse