Suppression ligne de listbox
Bonjour,
J'ai une listbox ou je peux supprimer et ajouter des lignes à l'aide de bouton
sur le bouton supprimer j'ai mi le code :
Code:
1 2 3 4 5 6 7 8 9
| Private Sub CommandButton3_Click()
Dim i As Long
For i = ModifList.ListBoxList.ListCount - 1 To 0 Step -1
If ModifList.ListBoxList.Selected(i) Then
ModifList.ListBoxList.RemoveItem (i)
i = i - 1
End If
Next i
End Sub |
cependant il me renvoi l'erreur :
Citation:
Erreur d'exécution'-2147467259(80004005)'
Erreur non répertoriée
à la ligne :
Code:
ModifList.ListBoxList.RemoveItem (i)
Mon userform s'appel bien ModifList, ma Listbox s'appel bien ListBoxList, et le I renvoi bien le numéro de ligne sélectionner.
Je ne comprend pas ce qui se passe ..
Pouvez vous m'aider ?
Cordialement,
Passepartout007
Re : Attention au interprétation.
Bonjour, ta critique est certe constructive sur des points mais sur d'autre elle ne fais que m'enfoncer ... Je ne trouve pas que cela est le but du forum .. bref passons.
Je ne suis pas forcément très bon en grammaire, mais dans l'ensemble j'ai toujours réussi a bien me faire comprendre de la communauté de ce forum qui et très agréable et très gentil (généralement).
Je réexplique car je pense qu'il y a eu un quiproquo dans la compréhension.
Je me trouve dans un formulaire.
Ce formulaire se base sur des données provenant de tableau excel dont les utilisateurs n'aurons pas accès.
Chaque tableau représente une listes de choix. J'affiche ses listes dans une listbox qui se trouve dans un Userform.
j'ai un bouton ajouter qui ajoute des possibilitées à la listbox et un bouton supprimer qui doit supprimer la ou les possibilitée(s) sélectionnée(s).
Cependant comme expliquer précedement la ligne de code ne fonctionne pas et je ne comprend pas pourquoi. si tu as une autre manière de faire tu peux me l'exprimer mais j'aimerais garder l'affichage dans une listbox cela permet une meilleure visibilité des différent élément
Concernant cette mis en garde qui est très constructive je te répond :
Citation:
Au passage quand tu utilises l'index i, tu t'assures que l'élément existe ? Si tu l'as déjà supprimé avant, effectivement il va y avoir une erreur. Et d'autres utilisateurs peuvent ne pas avoir cette erreur en lançant le code s'il existe quand le code est exécuté. Tandis qu'en lançant plusieurs fois le code, s'il a été supprimé la première fois l'erreur va se produire...
Q'effectivement le code prend en compte ce critère car il remonte de la dernière ligne à la première ligne de la listbox, de plus si l'on ré appuis sur le bouton supprimé le i est modifié à chaque fois.
voici l'intégraliter du code pour que tu t'en fasse une idées n'hésite pas à me faire des retours constructif.
Code:
1 2 3 4 5 6 7
|
Private Sub CommandButton3_Click()
Dim i As Long
For i = Me.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(i) = True Then Me.ListBox1.RemoveItem i
Next i
end sub |
Respectueusement,
Passepartout007