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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Bonjour,
Et là c'est moi qui boucle pour trouver la solution.
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" a écrit dans le message de news:
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.
Bonjour,
Et là c'est moi qui boucle pour trouver la solution.
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" <nospam_simulacre25@wanadoo.fr.invalid> a écrit dans le message de news:
5uudnWwhbO6XT3_S4p2dnAA@giganews.com...
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.
Et là c'est moi qui boucle pour trouver la solution.
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" a écrit dans le message de news:
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.
Jacky
Re...
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" a écrit dans le message de news: jrunbn$ssf$
Bonjour,
Et là c'est moi qui boucle pour trouver la solution.
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" a écrit dans le message de news:
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.
Re...
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" <Dupond@marcel.fr> a écrit dans le message de news: jrunbn$ssf$1@speranza.aioe.org...
Bonjour,
Et là c'est moi qui boucle pour trouver la solution.
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" <nospam_simulacre25@wanadoo.fr.invalid> a écrit dans le message de news:
5uudnWwhbO6XT3_S4p2dnAA@giganews.com...
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.
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" a écrit dans le message de news: jrunbn$ssf$
Bonjour,
Et là c'est moi qui boucle pour trouver la solution.
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" a écrit dans le message de news:
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.
simulacre25
Le jeudi 21 Juin 2012 à 09:51 par simulacre25 :
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.
Merci Jacky,
Effectivement, partir du bas était logique, sûrement trop pour moi.
Cela fonctionne.
Encore merci et bonne journée.
Le jeudi 21 Juin 2012 à 09:51 par simulacre25 :
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.
Merci Jacky,
Effectivement, partir du bas était logique, sûrement trop pour moi.
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.
Merci Jacky,
Effectivement, partir du bas était logique, sûrement trop pour moi.