Effectivement ton compteur ZonesNommeesAExplorer.Count changera de valeur dès
qu'une suppression est faite.
Pour autant il y a toujours la solution de parcourir la boucle For... Next à
l'envers.
L'effet principal est que tu n'as plus rien à faire des postes de rang
supérieurs à celui que tu viens de supprimer puisque tu les as déjà traités.
Donc l'indice maximum peut évoluer sans dommages pour toi.
Il faut utiliser l'astuce :
For x = oZonesNommeesAExplorer.Count - 1 To 0 Step -1
Next x
Et sauf cas particulier de traitement utilisant plusieurs éléments de la liste
en même temps, tu es forcément sauvé.
En espérant que cela aide
Jean-Marc
Le mercredi 12 Novembre 2008 15:29, mic....@online.fr a écrit :
Bonjour,
Avec une boucle For Next, je parcours la liste de mes zones nommées et je
supprime la zone si son nom correspond à un critère...
Mais en cas de suppression, la boucle m'affiche une erreur "Index hors de
la plage définie". Je suppose que c'est en raison du nombre de zone qui a
changé...
For x = 0 to oZonesNommeesAExplorer.Count - 1
oZoneEnCours = oZonesNommeesAExplorer(x)
' Mes traitements
' dont des suppression de zone
Next x
A quel moment est évalué oZonesNommeesAExplorer.Count - 1 ? La valeur
est-elle remise à jour ? Comment surmonter cet obstacle ?