PB URGENT : index hors limites

vivian07 Messages postés 2 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 14 septembre 2003 - 13 sept. 2003 à 23:02
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 15 sept. 2003 à 12:39
Bonjour à vous,

j'ai un gros probleme, je veux supprimer des doublons dans une listview, mais j'ai ce message d'erreur qui apparait : "index hors limite"

voici mon code :

For I = 0 To ListItemResultat.ListSubItems.Count - 1
If ListItemResultat.ListSubItems(I) = ListItemResultat.ListSubItems(I + 1) _
And ListItemResultat.ListSubItems(I) <> "" Then
ListItemResultat.ListSubItems.Remove (I + 1)
I = I - 1
End If
Next

je ne trouve pas d'erreur
si quelqu'un pouvait m'aider ça serait super !!!

merci à tous !!!

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 sept. 2003 à 23:06
Commence par le dernier et remonte jusque index 0.
Il se produit un decalage de nombre si suppression et le 'To' du 'For' n'est evalue qu'1 seule fois au depart.
BruNews, ciao...
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 sept. 2003 à 12:39
Je penses que ton Pb viens de ton ".Remove(I+1)". Comme I vaut Listsubitems.count-1 au derneir tour de boucle, c'est l'indice du dernier item, alors si tu fais "+1" dessus, tu sors ... Fait ta boucle sur ListSubItems.count-2 !!
Mais de toute facon, il n'est pas conseiller de faire une boucle For ..Next si le code de la boucle fait vairer la variable I et/ou les limites de la boucle. Il vaut mieux faire du While ... Wend dans ce cas.

Christophe R.
0
Rejoignez-nous