XL 2016 listbox supression multi-ligne

sengahon

XLDnaute Nouveau
Bonjour à tous,

je viens vers vous car je ne trouve pas la solution à mon problème.
J’essaie de mettre en place une suppression multi-ligne mais en-vain.

Voici mon code :

Dim I As Integer
With ListBox1
If .ListIndex = -1 Then Exit Sub
For I = .ListCount - 1 To 0 Step -1
If .Selected(I) = True Then
Sheets("Input").ListObjects(1).ListRows(ListBox1.List(I, 0)).Delete
.Selected(I) = False
End If
Next I
End With

Le problème est que la boucle se termine une fois qu'il supprime la 1ére ligne (du bas ).
J'ai donc essayé de vérifier ma boucle en remplaçant ma ligne de suppression par un msgbox qui m'indique à chaque fois la ligne sélectionnée.
Et là tout fonctionne correctement.

Je vous remercie d'avance.
 

sengahon

XLDnaute Nouveau
Bonjour et merci de vos réponses.

Bebere,
Ma listbox pointe une copie d’un tableau (avec le philtre avancée) Excel qui contient différentes colonnes. Mais les lignes sont indexée
C'est pour cela que je lui demande de pointer la colonne 0 qui contient un ID unique.

Sousou
Merci pour ton fichier. Ton code fonctionne, mais quand je commence à filtrer ma listbox ça ne fonctionne plus.
aurais tu une idée stp?
 

Bebere

XLDnaute Barbatruc
bonsoir
comme suit le code fonctionne
VB:
Sub sup()

    With Sheets(1).ListObjects("tableau1")
        For n = UserForm1.ListBox1.ListCount - 1 To 0 Step -1
            If UserForm1.ListBox1.Selected(n) = True Then

                If IsEmpty(Z) = True Then
                    Set Z = .ListRows(n + 1).Range
                Else
                    Set Z = Union(Z, .ListRows(n + 1).Range)
                End If
                UserForm1.ListBox1.RemoveItem n
            End If
        Next
    End With
    Z.Delete

End Sub
listbox.listcount=5 index listbox de 0 à 4
 

sengahon

XLDnaute Nouveau
bonjour,

Sousou, ton code fonctionne dans mon dossier également. Mais quand je commence à filtrer ma listbox puis à sélectionnés les lignes que je veux supprimer, il me supprime les mauvaise lignes.

Bebeber,

J'ai essayer la version de ton code mais il ne fonctionne pas. j'ai une erreur non répertorier sur la ligne suivante.
UserForm1.ListBox1.RemoveItem n

Ps : Bien-sur j'ai adapter le nom UserForm1 au mien
 

Discussions similaires

Réponses
17
Affichages
760

Statistiques des forums

Discussions
311 711
Messages
2 081 782
Membres
101 817
dernier inscrit
carvajal