Si élément sélectionné dans listbox multiselect alors

  • Initiateur de la discussion Initiateur de la discussion jecirbe
  • 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 !

jecirbe

XLDnaute Junior
Bonjour
je fais appel à vous car je m'arrache les cheveux sur ce petit pb. J'ai 3 listbox liées, code qui fonctionne trèsbien car trouver sur le site de Monsieur JB (boisgontierjacques.free.fr/).
Ce que j'essaye de faire c'est si le premier item est sélectionné dans ma première listbox alors il m'affiche un label en dehors des listbox bien sûr. Ca c'est ok. mais si je dé selectionne (erreur de séléction par exemple) ce même item j'aimerai que le label disparaisse à nouveau.
J'ai ben sûr essayer avec un if .... else mais la "disparition" du label ne se fait pas
Je vous mets un petite fichier pour que ce soit plus parlant.Merci d'avance
 

Pièces jointes

Bonjour,

Peut-être comme ceci

Private Sub LBxMotif_Change()

Me.LBxPart.Clear
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[A2], f.[A1048576].End(xlUp))
For k = 0 To Me.LBxMotif.ListCount - 1
If Me.LBxMotif.Selected(k) = True Then
If Me.LBxMotif.ListIndex = 0 Then
Label13.Visible = True
Else

Label13.Visible = False
End If

If c = Me.LBxMotif.List(k, 0) Then
temp = c.Offset(, 1)
mondico(temp) = temp
End If
End If
Next k
Next c

Me.LBxPrecis.List = mondico.Items

End Sub

a+
 
bonjour Jecirbe,Chalet
Private Sub LBxMotif_Change()
Me.LBxPart.Clear
If Compte Then
Label13.Visible = True
Else
Me.Label13.Visible = False
End If
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[A2], f.[A1048576].End(xlUp))
For k = 0 To Me.LBxMotif.ListCount - 1
If Me.LBxMotif.Selected(k) = True Then
If c = Me.LBxMotif.List(k, 0) Then
temp = c.Offset(, 1)
mondico(temp) = temp
End If
End If
Next k
Next c
Me.LBxPrecis.List = mondico.Items

End Sub

Function Compte() As Boolean
For k = 0 To Me.LBxMotif.ListCount - 1
If k = 0 And Me.LBxMotif.Selected(k) = True Then Compte = True:exit for
Next
End Function
 
Bonjour Bebere
je vais essayer ta version même si j'ai trouvé une solution qui fonctionne. J'ai rajouté un évènement sur un mouseUp sur le listbox.
Mais ta version m'intéresse car j'ai encore du mal avec les fonctions même si je connais leur intérêts
A+
 
Test fait
MERCI!!!! Bebere ça marche nickel chrome mieux que mon évènement donc je garde
A bientôt ( oui oui car j'ai un gros os auquel je m'attaque - j'y suis dessus depuis 2 jours - mais si je n'y arrive je sais où trouver de l'aide)
Bonne journée
 
Bonjour SI...
Merci pour tes propositions mais ça marche pas comme je l'attends :-(
En fait mon problème se situait au niveau de la détection du premier item de la première listbox pour faire apparaitre l'item ( qui est juste à ce stade un test élémentaire car j'ai un soucis "d'algorithme" que je ne sais pas résoudre pour le moment que je vous soumettrais peut être
Mais je vais étudier tes codes pour apprendre
 
Re

Bonjour SI...
Merci pour tes propositions mais ça marche pas comme je l'attends désolé pour la mauvaise réponse😕
En fait mon problème se situait au niveau de la détection du premier item de la première listbox pour faire apparaitre ...

Comme je l’ai compris : pour faire apparaître l'étiquette à la sélection du premier item de la liste, essaie ce
VB:
Private Sub LBxMotif_Change()
  LBxPart.Clear
  Set Dico = CreateObject("Scripting.Dictionary")
  For k = 0 To LBxMotif.ListCount - 1
    For Each C In Range(f.[B2], f.[B1048576].End(xlUp))
      If LBxMotif.Selected(k) And C(1, 0) = LBxMotif.List(k, 0) Then: Dico(C.Value) = ""
    Next
  Next
  LBxPrecis.List = Dico.Keys
  Label13.Visible = LBxMotif.Selected(0) = 1
End Sub
 
- 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
Retour