VBA supprimer des membres d'une collection (de lignes) sur condition

Guy_M

XLDnaute Occasionnel
Bonjour,

L'objectif de ce post n'est pas de trouver une solution mais de comprendre le comportement des collections dans Excel.

Une collègue m'a demandé de lui faire une macro supprimant certaines lignes d'une feuille. J'ai bêtement codé ainsi :
VB:
'Attention, syntaxe approximative
For each ligne in activesheet.usedrange.rows
  if condition = vrai then ligne.delete
next ligne
Ça n'a pas marché :( et je ne comprends pas pourquoi et je suppose que ce doit être pareil avec toutes les collections (aurais-je abandonné trop vite cette piste ? lire le postscriptum)

Pourriez-vous, s'il vous plaît, m'expliquer pourquoi cela ne fonctionne pas ?

Par avance, merci pour vos réponses

A bientôt
Guy

PS : Pour éviter que vous me proposiez une solution, j'ai très vite programmé autrement la macro et elle fonctionne très bien
VB:
'Attention, syntaxe approximative
For i = activesheet.usedrange.rows.count to 1 step -1
  if condition = vrai then activesheet.rows(i).delete
next i
 

Statistiques des forums

Discussions
312 922
Messages
2 093 643
Membres
105 773
dernier inscrit
godelvie-divine.bihonda-b