Erreur d'exécution '381', test d'égalité de valeurs de 2 listbox

Résolu/Fermé
Rzk810 - Modifié par Rzk810 le 2/11/2013 à 15:54
 Rzk810 - 2 nov. 2013 à 16:06
Bonjour,

Je suis débutant en VBA, et j'ai un petit programme à faire pour la fac, en utilisant des combobox, listbox, textbox, fonctions et etc.

Pour la finalisation de mon programme j'ai une erreur, dans un des sub, que voici :


Voici le message d'erreur :

Erreur d'exécution '381'
Impossible de lire la propriété List.Index de table de propriété non valide


Et voici le code (en gras souligné, l'erreur) :


'si le nom existe dans listbox2, RemoveItem correspondat dans ListBox1
If n >= 1 Then
For l = 0 To n
For y = nbjoueurs To 0 Step -1
If ListBox2.List(l) = ListBox1.List(y) Then
ListBox1.RemoveItem y
Exit For
Else
End If
Next y
Next l
End If


Ce que je ne comprends pas, c'est que le ListBox2.List(l) me renvoie la valeur correcte, mais que le ListBox1.List(y) ne me renvoie rien du tout.
En fait mon code lit les valeurs de la listbox2 et les compare à celles de la listbox1, et si il y a des correspondances, les valeurs identiques sont supprimées de la listbox1.

Si vous avez une solution, ou une voie de solution je suis preneur.


Merci d'avance...


A voir également:

2 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 nov. 2013 à 16:00
Bonjour,
Tu enlève des Item de l List2 mais tu ne change pas le nombre NbJoueur, donc dépassement de capacité.
Essaye plutôt l'inverse..
    For n = 0 To ListBox1.ListCount - 1
For y = 0 To ListBox2.ListCount - 1
If ListBox1.List(n) = ListBox2.List(y) Then
ListBox2.RemoveItem (y)
Exit For
End If
Next y
Next n
A+
1
Ca marche, merci bien !

Sujet résolu du coup...
0