Suppresion ligne lorsqu´une colonne contient une certaine valeur
Résolu
camcam
-
camcam1404 Messages postés 68 Statut Membre -
camcam1404 Messages postés 68 Statut Membre -
Bonjour,
J'utilise le code suivant mais je ne comprends pas pourquoi il ne fonctionne pas pour certaines feuilles de calcul alors que pour d'autre oui...
Sub supression_ligne()
Dim Num_Ligne As Long
Dim Last_line As Integer
Last_line = Range("A1").End(xlDown).Row
For Num_Ligne = 1 To Last_line
If Cells(Num_Ligne, 4).Value = "0" Then Cells(Num_Ligne, 4).EntireRow.Delete
Next Num_Ligne
End Sub
J'utilise le code suivant mais je ne comprends pas pourquoi il ne fonctionne pas pour certaines feuilles de calcul alors que pour d'autre oui...
Sub supression_ligne()
Dim Num_Ligne As Long
Dim Last_line As Integer
Last_line = Range("A1").End(xlDown).Row
For Num_Ligne = 1 To Last_line
If Cells(Num_Ligne, 4).Value = "0" Then Cells(Num_Ligne, 4).EntireRow.Delete
Next Num_Ligne
End Sub
3 réponses
-
re,
inutile de boucler sur toutes les lignes même en remontant! ! !
et ne pas oublier de figer l'écran
Option Explicit
'---------------------------------------------
Sub destroy()
Dim Nbre As Long, Cptr As Long
Application.ScreenUpdating = False
With ActiveSheet
Nbre = Application.CountIf(.Columns("A"), 0) 'ou "0" ???
For Cptr = 1 To Nbre
.Rows(.Columns("A").Find(0, Cells(Cells.Rows.Count, "A")).Row).Delete
'ou ....Find("0"........
Next
End With
End Sub
Michel -
bonjour,
"0"= texte ou chiffre ?
Combien de lignes ?
-
Bonjour,
Lorsque tu supprimes une ligne... les lignes d'en dessous remontent ... ce qui fausse la boucle.
Pour palier à ça il faut faire la boucle en partant du bas puis en remontant.
Essaye ça :Sub supression_ligne() Dim Num_Ligne As Long Dim Last_line As Integer Last_line = Range("A1").End(xlDown).Row For Num_Ligne = Last_line to 1 Step -1 If Cells(Num_Ligne, 4).Value = "0" Then Cells(Num_Ligne, 4).EntireRow.Delete Next Num_Ligne End Sub