Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

For Next qui ne se termine pas...

2 réponses
Avatar
Yvan
Bonjour,

La boucle suivante ne s'arrête pas.

Le traitement : si le contenu de la cellule .Cells(i,1) répond aux critères,
la ligne est maintenue, sinon elle est supprimée.

Le pb, c'est que lorsque la boucle atteint son maximum, elle poursuit au
lieu de s'arrêter...

La variable a représente le nb de lignes.

For i = 2 To a
If .Cells(i, 1) >= 3 And .Cells(i, 1) <= 5 Then
Else
.Rows(i).Delete
i = i - 1
a = a - 1
End If
Next i

--
Merci pour vos réponses.

2 réponses

Avatar
François
Bonjour,

Cela devrait résoudre ton problème :
commencer la i=a pour finir par i=2, et sans i = i - 1 et a = a - 1, soit

For i = a To 2
If .Cells(i, 1) >= 3 And .Cells(i, 1) <= 5 Then
Else
.Rows(i).Delete
End If
Next i

Cordialement

François

"Yvan" a écrit dans le message de news:

Bonjour,

La boucle suivante ne s'arrête pas.

Le traitement : si le contenu de la cellule .Cells(i,1) répond aux
critères,
la ligne est maintenue, sinon elle est supprimée.

Le pb, c'est que lorsque la boucle atteint son maximum, elle poursuit au
lieu de s'arrêter...

La variable a représente le nb de lignes.

For i = 2 To a
If .Cells(i, 1) >= 3 And .Cells(i, 1) <= 5 Then
Else
.Rows(i).Delete
i = i - 1
a = a - 1
End If
Next i

--
Merci pour vos réponses.


Avatar
JB
Bonjour,

Sub Essai()
a = 100
For i = a To 2 Step -1
If Cells(i, 1) < 3 Or Cells(i, 1) > 5 Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement JB



Bonjour,

La boucle suivante ne s'arrête pas.

Le traitement : si le contenu de la cellule .Cells(i,1) répond aux crit ères,
la ligne est maintenue, sinon elle est supprimée.

Le pb, c'est que lorsque la boucle atteint son maximum, elle poursuit au
lieu de s'arrêter...

La variable a représente le nb de lignes.

For i = 2 To a
If .Cells(i, 1) >= 3 And .Cells(i, 1) <= 5 Then
Else
.Rows(i).Delete
i = i - 1
a = a - 1
End If
Next i

--
Merci pour vos réponses.