Supprimer plusieurs items dans une listbox

SAMWRC

XLDnaute Occasionnel
Bonjour le forum,

Je n'ai pas réussi a trouver la solution a mon probleme dans les discussions du forum, je fais donc appel a vous.

Le fichier est en PJ.

L'utilisateur peut ajouter une reference a une liste de reference grace a un textbox. Lorsqu'il clique sur ajouter, la reference est alors ajoutée aux items d'une listbox (en prenant soin d'éviter les doublons et de trier les valeurs, mais passons).

Je souhaite pouvoir donner la possibilité a l'utilisateur de sélectionner plusieurs valeurs de la listbox et des les supprimer en utilisant le bouton rouge. Et la ca coince ...

Mon probleme vient du fait que ma listbox n'est pas liée a une plage de cellule de ma feuille excel. Du coup, j'ai essayé de bricoler un peu mais pas moyen de trouver.

Si quelqu'un a une idee, je suis preneur !

Merci bien

Sam

PS : desole pour les accents, j'ai un clavier anglais ...
 

Pièces jointes

  • Suppression references selectionees.zip
    22.1 KB · Affichages: 58

blord

XLDnaute Impliqué
Re : Supprimer plusieurs items dans une listbox

Bonjour,

Voici 2 méthodes :

Supprimer une valeur dans la listbox à l'aide d'un bouton
Private Sub CommandButton1_Click()
Me.ListBox1.RemoveItem (Me.ListBox1.ListIndex)
End Sub


Supprime un item d'un listbox lors d'un double clic sur la ligne
Private Sub Listbox1_Dblclick(Byval Cancel As MSForms.Returnboolean)
If Listbox1.Listindex < 0 Then Exit Sub
Listbox1.Removeitem (Listbox1.Listindex)
End Sub

Bonne chance !

Blord
 

job75

XLDnaute Barbatruc
Re : Supprimer plusieurs items dans une listbox

Bonjour,

Il faut supprimer les Items sélectionnés du bas vers le haut :

Code:
For i = ListBox1.ListCount - 1 To 0 Step -1
   If ListBox1.Selected(i) = True Then
     ListBox1.RemoveItem (ListBox1.ListIndex)
   End If
 Next i

A+
 

Papou-net

XLDnaute Barbatruc
Re : Supprimer plusieurs items dans une listbox

Bonsoir le Forum, SAMWRC,

Apparemment, et sauf erreur de ma part, la méthode de job75 n'efface pas les lignes réellement sélectionnées.

En procédant avec 2 boucles, on parvient au résultat escompté :

Code:
Private Sub CommandButton4_Click()
    Dim i As Integer
    
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            ListBox1.List(i) = ""
        End If
    Next i
    For i = ListBox1.ListCount - 1 To 0 Step -1
        If ListBox1.List(i) = "" Then ListBox1.RemoveItem (i)
    Next
End Sub

Espérant avoir aidé.

Bien cordialement.
 

job75

XLDnaute Barbatruc
Re : Supprimer plusieurs items dans une listbox

Re,

Il me semble que ceci doit fonctionner :

Code:
For i = ListBox1.ListCount - 1 To 0 Step -1
   If ListBox1.Selected(i) = True Then
     ListBox1.RemoveItem i
   End If
Next i

J'avais fait confiance à SAMWRC pour la syntaxe de RemoveItem :)

A+
 

Discussions similaires

Réponses
18
Affichages
1 K

Statistiques des forums

Discussions
314 450
Messages
2 109 729
Membres
110 553
dernier inscrit
loic55