Sélection multiple dans une listbox1 et suppression de la sélection
Bonjour,
Je suis nouvelle, et recherche juste de l'aide. Je suis en train de construire un petit "logiciel" de gestion de stock, mais j'ai un niveau de débutante et ne comprend pas tout.
Je viens aujourd'hui avec une question précise, mais serait ravie d'échanger avec des personnes prêtent à aider sur le projet global.
J'ai créé un formulaire pour ajouter des articles en stock en partant d'une base de donnée. Dans mon formulaire j'ai mis 2 listbox: ListBox1 affiche ma base article et y permet une sélection multiple; ListBox2 doit récupérer les articles sélectionnés en ListBox1.
J'ai 2 bouton: B_Prend2 qui prend les articles sélectionnés en ListBox1 pour les mettre en ListBox2 et en les supprimant de la ListBox1 et B_Enlève qui remet dans la ListBox1 les articles sélectionnés en ListBox2 (par exemple si on a fait une erreur dans la sélection des articles).
J'ai trouvé des codes intéressants sur le site http://boisgontierjacques.free.fr/. Mais ça ne semble pas fonctionner.
Pour L'instant, je peux sélectionner plusieurs articles de la ListBox1 et les passer en ListBox2. Par contre les articles sélectionnés ne se suppriment pas le la ListBox1 et se copient en ListBox2 autant de fois que j'appuie sur le bouton (Il faudrait qu'il n'apparaissent qu'une seule fois). De plus quand je sélectionne un article en ListBox2 pour le remettre en ListBox1 et le supprimer de la ListBox2, aucune de ces deux actions ne fonctionnent.
J'ai ce code la, pouvez vous m'aider à trouver ce qui ne va pas?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Private Sub B_Prend2_Click()
' bouton qui permet de coller les articles sélectionner en ListBox1 dans la ListBox2 (Attention doublon)
If UserForm2.ListBox1.ListIndex <> -1 And UserForm2.ListBox1.ListCount > 0 Then
For i = 0 To UserForm2.ListBox1.ListCount - 1
If UserForm2.ListBox1.Selected(i) = True Then
'UserForm2.TextBox1.Text = i
UserForm2.ListBox2.AddItem UserForm2.ListBox1.List(i)
'UserForm2.ListBox2.AddItem i
pos = Me.ListBox2.ListCount - 1
For k = 0 To 10
Me.ListBox2.List(pos, k) = Me.ListBox1.List(i, k)
Next k
End If
Next i
For i = UserForm2.ListBox1.ListCount - 1 To 0 Step -1
If UserForm2.ListBox1.Selected(i) = True Then
UserForm2.ListBox1.RemoveItem i
UserForm2.ListBox1.RemoveItem UserForm2.ListBox1.Selected(i)
UserForm2.ListBox1.RemoveItem UserForm2.ListBox1.ListIndex
End If
Next i
UserForm2.TextBoxNBArticles = UserForm2.ListBox2.ListCount - 1
End If
End Sub
Private Sub B_Enlève_Click()
'Bouton qui retire les articles sélectionner en Listbox2
If UserForm2.ListBox2.ListCount > 0 And UserForm2.ListBox2.ListIndex <> -1 Then
UserForm2.ListBox1.AddItem UserForm2.ListBox2
pos = UserForm2.ListBox1.ListCount - 1
For k = 0 To 10
UserForm2.ListBox1.List(pos, k) = UserForm2.ListBox2.Column(k)
Next k
UserForm2.ListBox2.RemoveItem UserForm2.ListBox2.ListIndex
End If
End Sub |
J'ai un problème avec le RemoveItem. J'ai essayé plusieurs formulations, avec ou sans (), mais rien ne fonctionne. C'est la seule partie du code qui semble ne pas fonctionner.
Merci d'avance