Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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:
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 !
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…