PROBLEME DE SUPPRESSION DE LIGNES (SOUS CONDITION) DANS UNE LISTEBOX

winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 décembre 2016 - 25 déc. 2009 à 16:54
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 26 déc. 2009 à 15:41
Bonjour à tout le monde !

Dans un 1er temps, JOYEUX NOEL !!!

Je poste ce message car j'ai un problème (à mon avis tout bête à régler ....) auquel je ne trouve pas de solution.
Je suis sous VB6.

Voici le code qui me pose problème :

With liste2
    For i = .ListCount - 1 To 0 Step -1
        If Mid(.List(i), 1, 2) = "**" Then .RemoveItem (i)
    Next i
End With


liste2 soit une listebox
Sur cette listebos j'ai plusieurs lignes dont certaines peuvent commencer par **
Avec le code, je veux supprimer donc toutes les lignes qui commencent par **. Mais, lorsque je clique sur le bouton qui exécute ce code, seulement une partie des lignes est supprimée.

Je ne comprends pas pourquoi toutes les lignes ne sont pas traitées.
Dans l'espoir de vous relire. Merci.
En attendant, je me repenche sur le problème.

Jerome

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 déc. 2009 à 17:02
Bonjour,

Peux-tu nous montrer le contenu exact (espaces éventuels compris) d'une ligne qui aurait dû être supprimée et ne l'a pas été ?
Car ton code devrait fonctionner sans faille, pour autant que tes lignes à supprimer ommencent bien par "**"... !
A tout hasard (juste pour le cas où tu aurais des espaces devant) : zigouille les espaces éventuels :

If Mid(Ltrim(.List(i)), 1, 2) = "**" Then .RemoveItem (i)


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 déc. 2009 à 17:02
salut,

ton code semble correct
ajoute debug.print "_" & .list(i) & "_" avec ton test mid, peut-être certains items contiennent un espace ou un caractère parasite non visible

++

[hr]
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
26 déc. 2009 à 14:49
salut
Mid(.List(i), 1, 2) <=== tu es sure que toutes les lignes contiennent plus que 2 caractères ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 déc. 2009 à 15:41
Claiyah -> qu'est-ce çà changerait?
mid ne renvoie pas d'erreur dans ce cas, et la condition ne serait juste pas vérifiée (item non concerné par la recherche)
0
Rejoignez-nous