Suppression en chaîne de lignes

koyot3

XLDnaute Nouveau
Bonjour à tous

Dans une colonne C, j'ai des numéros de productions. Or je voudrais faire un tri par exemple pour ne conserver que les produits ayant un num de prod égal à 72 et 73.

Code:
vide = False
x = 1

Do While vide = False
    If IsEmpty(Cells(x, 4).Value) Then
        vide = True
    Else
        If Cells(x, 4).Value <> 72 and Cells(x, 4).Value <> 73  Then
            'Sheets("Import").Rows(x).Delete Shift:=xlUp
        End If
        x = x + 1
    End If
Loop

Le probleme est qu'il m'en supprime une partie masi pas tous ...
Je n'arrive pas à voir d'où vient le probleme...

Merci d'avance pour votre aide !
johan
 

Pyrof

XLDnaute Occasionnel
Re : Suppression en chaîne de lignes

Bonjour,

Quand tu fais le delete ligne, il ne pas incrémenter x
car le fait de supprimer ta ligne, la suite suivante devient la ligne x et comme tu incremnente x , cette dernière ne sera pas analysée

vide = False
x = 1

Do While vide = False
If IsEmpty(Cells(x, 4).Value) Then
vide = True
Else
If Cells(x, 4).Value <> 72 and Cells(x, 4).Value <> 73 Then
'Sheets("Import").Rows(x).Delete Shift:=xlUp
else
x = x + 1
End If
End If
Loop
 

Staple1600

XLDnaute Barbatruc
Re : Suppression en chaîne de lignes

Bonjour


Une autre façon de faire

Code:
Sub sup_lignes()
Application.ScreenUpdating = False
Selection.EntireRow.Insert
ActiveCell.FormulaR1C1 = "XXXXX"
Selection.AutoFilter Field:=1, Criteria1:="<72", Operator:=xlOr, _
Criteria2:=">73"
Selection.CurrentRegion.EntireRow.Delete
Application.ScreenUpdating = True
End Sub

Pour info:

Dans une colonne C (donc 3)

Cells(x, 4).Value) ;)
 

Discussions similaires

Réponses
6
Affichages
353
Réponses
3
Affichages
565

Statistiques des forums

Discussions
312 508
Messages
2 089 143
Membres
104 050
dernier inscrit
Pepito93100