vivian07
Messages postés2Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention14 septembre 2003
-
13 sept. 2003 à 23:02
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDerniè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 !!!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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...
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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.