Comparer 2 SubItems de 2 listview differents

Résolu
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 28 janv. 2010 à 18:37
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 28 janv. 2010 à 22:04
Bonsoir à vous,

Pourriez-vous m?aider et m?expliquer comment faire pour comparer 2 SubItems de 2 listview differents.

Je m?explique :

J'ai 2 listview :
Le SubItems(1) du Listview6 a des nombres qui correspondent à des quantités

Le SubItems(3) du Listview2 a des nombres qui correspondent également à des quantités

J'aimerais pouvoir comparer ces 2 SubItems et si les nombres sont differents les envoyer vers un Listview7.

J'ai essayé avec ce code me cela ne fonctionne pas pourriez-vous m?aider.



[i]Dim bTrouvé As Boolean
Dim n As Long
Dim r As Long


For r = 1 To ListView6.ListItems.Count
bTrouvé = False
For n = 1 To ListView2.ListItems.Count
If ListView6.ListItems(r).SubItems(1) <> ListView2.ListItems(n).SubItems(3) Then
ListView7.ListItems.Add = ListView6.ListItems(r)

bTrouvé = True
Exit For
End If
Next
If Not bTrouvé Then


End If
Next/i

Merci d'avance.

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
28 janv. 2010 à 19:11
Salut
Toujours ce même problème ...
La prochaine fois, colle ton code en utilisant la coloration syntaxique (3ème icone à partir de la droite) : cela conservera la mise en forme.

Je vois que depuis que je t'ai donné du code, tu n'as pas beaucoup refléchi ni analysé les lignes pour comprendre ce qu'elles font. Désolé, on ne refléchira pas à ta place.
Même ton explicatif est incomplet, c'est fort !
Comment veux-tu trouver de l'aide si tu ne sais pas expliquer ton problème ?
Tu as seulement oublié de dire que les Items des 2 ListView sont identiques (même nombre et même ordre ?) : C'est quand même important pour comprendre ce que tu cherches à faire, non ?

Dans le code que tu fournis ici, tu compares les SubItems 1 de chaque Item de la première ListView avec tous les SubItems 3 de chaque Item de l'autre ListView : ça n'a aucun sens !
Non, la structure que tu as mise en place (les 2 For-Next imbriqués) sont là pour rechercher l'Item (pas SubItem) de la ListView6 parmi ceux de la ListView2.
Une fois que tu seras sûr que ce sont bien les mêmes, alors seulement tu pourras comparer les SubItems entre eux.
      If ItemDeLV6 = ItemDeLV2 Then
         If SubItem(1) de ItemDeLV6 <> SubItem(3) de ItemDeLV2 Then
            ' L'action que tu veux faire :
            ListView7.ListItems.Add = ListView6.ListItems(r)
         End If
         ' Mémorise qu'on a trouvé le même Item (pas SubItem)
         bTrouvé = True
         ' On suppose qu'il n'y a qu'un Item concerné par référence
         Exit For  ' on sort de la dernière boucle
      End If


Le bTrouvé n'est là que pour savoir si, à la sortie du Next, tu as trouvé les mêmes Items et que tu as bien fait la comparaison des SubItems.
Que doit-il se passer si un Item de ListView6 n'existe pas dans ListView2 ?
--> Mets le dans le test If Not bTrouvé Then qui suit.

Vala
Jack, MVP VB
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
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
28 janv. 2010 à 22:04
Merci à toi pour tes explications.

Bonne soirée.
0
Rejoignez-nous