Faire le tri d'une ListView suivant critères dans SubItems(x)

IFFIC

XLDnaute Occasionnel
Bonsoir à ceux qui passeront par là.
(Encore moi!!!)

Je ne parviens pas à faire une boucle complète sur ma ListView

En disant que si le "SubItems(3)" est égal à 'Truc" ou "Machin"
Tu "Remove" le ListView1.ListItems, ou tu suis le lien de la colonne 5..et c.

Je dois cliquer moult fois mon bouton de commande pour obtenir
le résultat; ce qui ne me semble pas VBAtesquement Normal.

Quand les "SubItems(3)" ne sont pas identiques au précédent, ni au suivant, cela fonctionne.
(Preuve; dans le classeur joint)

Merci d'avance, et bonne soirée à tous.

IFFIC
 

Pièces jointes

  • TEST_LISTVIEW2.zip
    41 KB · Affichages: 54

Kobaya

XLDnaute Occasionnel
Re : Faire le tri d'une ListView suivant critères dans SubItems(x)

salut IFFIC,

un conseil : quand tu détruis des items, n'utilises jamais de boucle For/Next.

la boucle For / Next va par exemple de 0 à 9 (10 éléments). si tu effaces un item, la boucle va toujours se faire de 0 à 9, or il ne reste plus que 9 éléments, d'où l'erreur sur la dernière itération de la boucle.

utilise plutôt Do Loop avec un indice dans la proc CommandButton4_Click :
Code:
Private Sub CommandButton4_Click()
    i = 1
    Do
        If Me.ListView1.ListItems(i).ListSubItems(3) = "BLEU" Then
            Me.ListView1.ListItems.Remove i
        Else
            i = i + 1
        End If
    Loop Until i > Me.ListView1.ListItems.Count
End Sub
 

IFFIC

XLDnaute Occasionnel
Re : Faire le tri d'une ListView suivant critères dans SubItems(x)

Kobaya à dit:
salut IFFIC,

un conseil : quand tu détruis des items, n'utilises jamais de boucle For/Next.

la boucle For / Next va par exemple de 0 à 9 (10 éléments). si tu effaces un item, la boucle va toujours se faire de 0 à 9, or il ne reste plus que 9 éléments, d'où l'erreur sur la dernière itération de la boucle.

utilise plutôt Do Loop avec un indice dans la proc CommandButton4_Click :
Code:
Private Sub CommandButton4_Click()
    i = 1
    Do
        If Me.ListView1.ListItems(i).ListSubItems(3) = "BLEU" Then
            Me.ListView1.ListItems.Remove i
        Else
            i = i + 1
        End If
    Loop Until i > Me.ListView1.ListItems.Count
End Sub

Merci Kobaya,Voltairien au langage fort délectable.

Je viens de tester et cela marche pour le mieux.

Je m'étais douté que la "ListItems.Count" variait selon ce qu'il en restait
D’où l'erreur.

Mais encore eut-il fallu qu'une bonne âme comme toi
guide mes vieux doigts sur le clavier.

Si Bill utilisait la langue de Molière, ne serait-il pas plus facile? N'est-il pas?

Merci beaucoup à toi, et bonne soirée.

P.S. D'où viens ce pseudonyme 'Kobaya"?
Un hasard, ou une réalité?

Amicalement

IFFIC
 

Kobaya

XLDnaute Occasionnel
Re : Faire le tri d'une ListView suivant critères dans SubItems(x)

D'où vient mon pseudo ? Hasard ou réalité ? Je n'en sais rien... Un jour, j'ai entendu ce nom, et comme je trouvais qu'il sonnait bien, je l'ai gardé :D

Merci pour le
au langage fort délectable
ça me fait plaisir de voir qu'il y a au moins une personne ici-bas qui prête encore attention à la langue française. Des fois, quand je lis certains posts, je désespère :(

P.S.
Ce qui ne m'empêche pas de faire, moi aussi, des fautes. Notamment, quand je veux répondre très vite parce que je suis "à la bourre", ou que je ne veux pas me faire doubler par les cracks de ce forum (que celui qui ne fait jamais ça me jette le premier bug !). Non, je ne citerai personne pour ne pas faire de jaloux ;)
 
Dernière édition:

IFFIC

XLDnaute Occasionnel
Re : Faire le tri d'une ListView suivant critères dans SubItems(x)

Le "Bien parler" est un autre débat!

Dans mon entreprise je me lamente des "Simplifications"
de stagiaires "Elèves Ingénieurs"'. Bigre que j'ai l'air d'un vieux con.

La belle écriture est la science des ânes (N'a-t-il pas été dit)

L'orthographe est celle qui aime leur langue.
Mais pas très facile en francais, il faut l'avouer.

Quand la gentillesse comme la tienne est là,
comme bien d'autes ici, on en a rien à fiche.

Au plaisir de te rencontrer sur ce site.

IFFIC
 

Discussions similaires

Réponses
4
Affichages
2 K

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 930
dernier inscrit
Jibo