Salut jarault
Le sens importe peu, dans le cas de ma nacro, puisqu'on ne supprime pas les cellules, on se contente de les effacer. la rapidité vient uniquement du nombre de cellules à contrôler
1 2 3 4 5 6 7
| Sub test()
Dim Cel As Range
For Each Cel In Range([B2],[B2].End(xlDown))
If Int(Cel) <= Int(Range("I1"))+ 1 Then _
Range(Cel.Offset(0, -1), Cel.Offset(0, 6)).ClearContents
Next Cel
End Sub |
C'est la même, sauf qu'on limite le nombre de cellules par le même type d'instruction que celui de Le Pierre.
Je n'utilise pratiquement jamais le "XlDown", son comportement dépendant de trop de facteur (état vide 1re et 2me cellule, cellules vides au milieu).
D'habitude, j'utilise : Range([B2],[B65536].
End(xlup)), mais ne connaissant pas la structures des données, et ne sachant pas si B150 et B151 sont vides ou non, je me suis contenté d'utiliser la limite définie.
On pourrait rajouter le test d'une date en Cel :
If Int(Cel) <= Int(Range("I1"))+ 1 And isDate(cel) then
Mais pour moi, les cellules B2:B151 contenaient toutes des dates
A+
Partager