Boucle et effacement de lignes
Le
Bonjour,
Je souhaite tester mes données présentes en colonne A et effacer les lignes qui ne correspondent pas à mes critères.
For i = 1 To n 'n = mon nb de valeur en col A
mystring = Range("A" & i).Value
If Left(mystring, 3) <> "210" Then
Range(A" & i).EntireRow.Clear
End If
Next
Mon problème, c'est que chaque fois que j'efface une ligne, i s'incrémente d'1 et la ligne suivante est devenue la ligne correspondant au i précédent et n'est pas traitée par la boucle.
Et là c'est moi qui boucle pour trouver la solution.
Merci de votre aide.
Je souhaite tester mes données présentes en colonne A et effacer les lignes qui ne correspondent pas à mes critères.
For i = 1 To n 'n = mon nb de valeur en col A
mystring = Range("A" & i).Value
If Left(mystring, 3) <> "210" Then
Range(A" & i).EntireRow.Clear
End If
Next
Mon problème, c'est que chaque fois que j'efface une ligne, i s'incrémente d'1 et la ligne suivante est devenue la ligne correspondant au i précédent et n'est pas traitée par la boucle.
Et là c'est moi qui boucle pour trouver la solution.
Merci de votre aide.
En commençant par la fin........
'----------------
Sub jj()
Dim DerniereLigne As Long
DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row 'mon nb de valeur en colA
For i = DerniereLigne To 1 Step -1
If Left(Range("A" & i).Value, 3) <> "210" Then
Rows(i).Delete
End If
Next
End Sub
'---------------
--
Salutations
JJ
"simulacre25"
S'il ne fallait par supprimer la ligne
Remplacer "Rows(i).Delete"
par
Rows(i).ClearContents
pour effacer le contenu
ou par
Rows(i).Clear
pour effacer contenu et format
--
Salutations
JJ
"Jacky"
Merci Jacky,
Effectivement, partir du bas était logique, sûrement trop pour moi.
Cela fonctionne.
Encore merci et bonne journée.