Suppression lignes antérieures a une date

Résolu
Signaler
Messages postés
1
Date d'inscription
mercredi 13 décembre 2000
Statut
Membre
Dernière intervention
9 septembre 2008
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
Bonjour,

Je débute avec le vba d'excel et je souhaiterais supprimer les lignes antérieures a une date spécifiée dans un tableau. Voici ce que j'ai fait :

Sub Suppression_Lignes_Anterieures_Date()


Dim x As Long
x = 5 'mes données commencent à la ligne 5
Do Until x = 300 'mon tableau fait 300 lignes


If Cells(x, 4).Value < Cells(1, 2).Value Then
    Rows(x).Delete
End If
Loop


End Sub

Le résultat est encourageant vu que ça supprime effectivement les premières lignes répondant au critère mais dés que j'arrive sur une ligne n'y répondant pas (donc que je souhaite conserver) il bloque sur le End If et ne traite pas les lignes suivantes.

Quelqu'un voit il d'où peut venir le problème ?
Merci de votre aide

2 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
je me demande m)eme s' il ne faut pas incrémenter (ou décrémenter) sous la condition :
Do While x >4
If Cells(x, 4).Value < Cells(1, 2).Value Then
    Rows(x).Delete
Else
   x=x-1
End If
Loop

A voir donc quelle ligne sera active après suppression.Celle d' en haut ou celle du bas.

<hr />

[] Ce qui va sans dire. va mieux en le disant.

<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonjour,
Beh tu oublies d' incrémenter ton x !
Dim x As Long
x = 5 'mes données commencent à la ligne 5
Do Until x = 300 'mon tableau fait 300 lignes

If Cells(x, 4).Value < Cells(1, 2).Value Then
    Rows(x).Delete
End If
 x=x+1
Loop

s' agigeant de suppression, il vaut mieux commencer par le bas.

Dim x As Long
x = 300 'mes données commencent à la ligne 5
Do While x >4
If Cells(x, 4).Value < Cells(1, 2).Value Then
    Rows(x).Delete
End If
x=x-1
Loop

<hr />

[] Ce qui va sans dire. va mieux en le disant.

<hr />