Enlever une ligne d un listbox

Résolu
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 11 mars 2005 à 16:42
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 12 mars 2005 à 01:17
Voilà en fait j ai un pti probleme de doublons et je voudrais les virer ...

Voici le traitement que je fais mais je n arrive pas a enlever la ligne qui est en double
Evidement LgLigneTab est le nombre de ligne de la listbox

For i = 1 To LgLigneTab
LignePrecedente = recherche.listtrouvé.List(i)
LigneSuivante = recherche.listtrouvé.List(i + 1)
If LignePrecedente = LigneSuivante Then
'enlever la ligne suivante'
End If
Next i

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 mars 2005 à 17:37
Salut
Ta réponse est dans le forum, suffit de taper 'doublon listbox' dans la case recherche !
Dans ton cas, tu ne vérifie que les doublons successifs, ce qui sous-entend que ta liste est classée (sort).
De plus, il faut savoir que, dans une boucle For-Next, la valeur finale de la boucle n'est pas recalculée à chaque cycle, donc si tu supprimes un élément du ListBox, il y aura erreur en fin de boucle --> Utilise plutôt les boucles Do While-Loop
Pour supprimer un élément, c'est "Remove x" où x est l'index de la ligne

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
12 mars 2005 à 01:17
Bonjour
Une autre solution (toujours en supposant que la liste est triée par Sorted=True) :
commencer par la fin.

For i = recherche.listtrouvé.ListCount - 1 To 1 Step -1
If recherche.listtrouvé.List(i) = recherche.listtrouvé.List(i - 1) Then
recherche.listtrouvé.RemoveItem (i)
End If
Next i
3
Rejoignez-nous