Delete shift:=xlup dans une boucle for each

Résolu/Fermé
Eric - 2 oct. 2013 à 11:19
 Eric - 3 oct. 2013 à 10:26
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

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
2 oct. 2013 à 11:41
Bonjour,

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