If IsNull(ListBox1.Value) = True dans une liste box Multi sélection

zephir94

XLDnaute Impliqué
Bonjour à vous tous,

Si je veux tester si une sélection a été faite dans une listbox mono sélection cette condition fonctionne sansq soucis
VB:
If IsNull(UserForm6.ListBox1.Value) = True

Mais dans une listbox Multi sélection ?
Je voudrais éviter une boucle du genre :
VB:
For Compteur = 0 To (ListBox1.ListCount - 1)
                If ListBox1.ListIndex = 0 Then 
                   MsgBox "Vous devez sélectionner ....", vbCritical, "Message du système"
                    Exit Sub
                End If
    Next

Merci pour vos lumières

Amicalement
Zéphir94
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour à vous tous,

Si je veux tester si une sélection a été faite dans une listbox mono sélection cette condition fonctionne sansq soucis
VB:
If IsNull(UserForm6.ListBox1.Value) = True

Mais dans une listbox Multi sélection ?
Je voudrais éviter une boucle du genre :
Bonjour,
Si le test sans boucle pour voir s'il y a sélection ou pas est faisable, il n'en est pas de même pour le traitement des items sélectionnés, si multi-sélection.
Cela pourrait ressembler à ceci
Code:
Private Sub CommandButton1_Click()
Dim i As Long
If ListBox1.ListIndex <> -1 Then
  For i = 0 To Me.ListBox1.ListCount - 1
    If ListBox1.Selected(i) Then
      MsgBox Me.ListBox1.List(i) & vbLf & "ici traitement pour les items selectionnés"
      ListBox1.Selected(i) = False
    End If
  Next i
  ListBox1.ListIndex = -1
Else
  MsgBox "Pas de selection" & vbLf & "Ici traitement si pas de selection"
End If
End Sub
'------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
ListBox1.ListIndex = -1
End Sub
 
Dernière édition:

zephir94

XLDnaute Impliqué
Bonsoir et merci à vous deux,

Mon soucis est que j'ai pensé a utiliser la méthode décrite par jacky67 avec
VB:
Private Sub UserForm_Initialize()
ListBox1.ListIndex = -1
End Sub
mais cela ne marche que une fois, en effet si l'utilisateur ouvre l'userform il y a une liste, si il ne sélectionne rien pas de soucis j'ai bien mon ma message box.
Mais si il sélectionne un item et finalement le décoche et que la sélection est vide est bien si il appuie à nouveau sur le bouton valider et bien ça ne marche plus !
 

zephir94

XLDnaute Impliqué
J'ai trouvé !
Pour que cela marche à nouveau il faut appeler dans mon bouton par :

Code:
call  UserForm_Activate


VB:
Private Sub UserForm_Activate()
  Me.TextBox2.SetFocus
UserForm6.ListBox1.ListIndex = -1
End Sub

Merci à vous deux
 

Discussions similaires

Réponses
5
Affichages
977

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16