Effacement ligne selon condition , macro.

Bobstriker

XLDnaute Nouveau
Bonjour aux Forumeurs Excel ,

J'ai un fichier de 30000 lignes reprenant des paiements mensuels réalisés vers des assurés , et je voudrai déterminer combien d'assurés différents j'ai en cours , en supprimant les lignes dont la date de paiement est antérieure à la dernière réalisée (valeur "H1"= 01/09/2009).
La macro ci dessous exécute bien les actions , mais pas sur toute une plage nommée , et je dois la frelancer plusieurs fois pour nettoyer complètement la zone sélectionnée.
Qu'ai je oublié ou mal écrit dans ma macro ?

Merci

Dim datcell As Date
datcell = Range("h1").Value
For Each cell In Range("a5:A1500") ' ne fait l'action que jusque A125 par exemple
If cell.Value < datcell Then
cell.EntireRow.Delete
End If
Next
 

Pierrot93

XLDnaute Barbatruc
Re : Effacement ligne selon condition , macro.

Bonjour bob

essaye peut être ainsi, lorsque tu delete il faut partir de la fin et remonter, afin de pouvoir supprimer les lignes consécutives qui répondent au test :

Code:
Dim i As Long
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 5 Step -1
    If Cells(i, 1).Value < Range("h1").Value Then Rows(i).Delete
Next
Application.ScreenUpdating = True

bonne journée
@+
 

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 762
dernier inscrit
rouazali