Listbox

Résolu
cs_le__prince Messages postés 40 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 22 mai 2006 - 3 mai 2006 à 20:44
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 4 mai 2006 à 06:39
Bonjour a tout le monde
J'ai un listbox et un bouton pour descendre un élément de cette liste
La problème se trouve quand clique par faute sur cette bouton sans clique sur un élément
Il s'ajoute un ligne vide sur la liste
Voila le code qui j'utilise:

Private Sub Command3_Click()
'descend l'item dans list1
Dim list1text As String
Dim list1textindex As Integer

list1textindex = List1.ListIndex

If List1.List(list1textindex + 1) <> "" Then
list1text = List1.List(List1.ListIndex)
List1.List(list1textindex) = List1.List(list1textindex + 1)
List1.List(list1textindex + 1) = list1text
List1.Selected(list1textindex + 1) = True
End If
End Sub


Le même problème se trouve avec le bouton monté d'un élément mais cette fois le programme sort totalement et si je test avec vb il se ferme
Voila le code qui j'utilise:

Private Sub Command4_Click()
'monter la position d'un item dans list1
Dim list1text As String
Dim list1textindex As Integer


If List1.ListIndex <> 0 Then
list1text = List1.List(List1.ListIndex)
list1textindex = List1.ListIndex
List1.List(list1textindex) = List1.List(list1textindex - 1)
List1.List(list1textindex - 1) = list1text
List1.Selected(list1textindex - 1) = True
End If
End Sub



Merci de répondre :

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mai 2006 à 06:39
Salut,

essai ça :

Private Sub Command4_Click()
If List1.ListIndex = -1 Then Exit Sub 'rajoute ça, si rien est sélectionné dans la liste, la procédure ne s'effectue pas

'monter la position d'un item dans list1
Dim list1text As String
Dim list1textindex As Integer


--If List1.ListIndex <> 0 Then-- 'du coup, plus besoin de ce "If"
list1text = List1.List(List1.ListIndex)
list1textindex = List1.ListIndex
List1.List(list1textindex) = List1.List(list1textindex - 1)
List1.List(list1textindex - 1) = list1text
List1.Selected(list1textindex - 1) = True
End If ' et donc le "End If" à supprimer aussi
End Sub
3
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
3 mai 2006 à 21:19
1 - Premier point, implémenter une gestion d'erreur
(en brutal :
On Error Goto ErrMax:
....
ErrMax:
Err.Clear
Exit sub
)
2 - Tu dois avoir une notion de SelectedItem égal à -1 si rien n'est sélectionné.
Tu peux donc vérifier ça avand de rentrer dans ton traitement.

Cordialement,

Alain 31
0
Rejoignez-nous