Delete shift:=xlup dans une boucle for each

[Résolu/Fermé]
Signaler
-
 Eric -
Bonjour,

J'ai une suite de cellules à tester et si les conditions sont remplis, je supprime la case et décale tout vers le haut.
le soucis c'est qu'une fois cela fait, VBA ne reteste pas la cellule et passe à la cellule suivante.
voici le bout de code:
For Each Cel In Données 'Données est en fait un Range
Cel.Activate 'ceci n'est là que pour confirmer la cellule en cours test: à supprimer
If Cel = "**" Or Cel < 10 Then
Cel.Delete shift:=xlUp
End If
Next Cel

Pourriez-vous m'indiquez comment je pourrais corrigé cela?

Merci d'avance.
Eric


2 réponses

Messages postés
16527
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 octobre 2021
3 232
Bonjour,

quelle est l'adresse(début-fin) de la plage "données"?
La plage de données est codée:
Set Données=range("D1").CurrentRegion
Car l'étendu de la plage est variable.
Finalement, je suis passé par une boucle do while et cela fonctionne.