Liste déroulante à choix multiple

Bonjour,

J'ai créé en m'inspirant d'un tutoriel une liste à choix multiple !

Simplement dans son exemple il indique vouloir faire une liste à choix multiple avec contenu variable ! Mais je n'en ait pas le besoin.

Alors j'ai bidouillé le code afin de pouvoir l'utiliser quand même.

Ma liste à choix multiple fonctionne , mais lorsque j'inscrit une valeur et que je souhaite la modifier la mon programme tourne dans le vide et il peine à s'actualiser correctement.

je précise que cette liste se situe lorsqu'on active la cellule b4 de la feuille "nouveau"

Pourriez vous y jeter un œil?

Merci par avance !

Christophe

22boulbidev2.xlsm (161.97 Ko)

Ma liste à choix multiple fonctionne , mais lorsque j'inscris une valeur et que je souhaite la modifier la mon programme tourne dans le vide et il peine à s'actualiser correctement.

Peux tu préciser ce qui pose problème ?

Quand on coche et décoche un ou plusieurs choix ça fonctionne correctement et chez moi ça ne mouline pas donc il doit s'agir d'autre chose : Que veux tu dire par "lorsque j'inscris une valeur et que je souhaite la modifier"

Tu l'inscris ou et tu souhaite la modifier comment ?

A+

Ma liste à choix multiple fonctionne , mais lorsque j'inscris une valeur et que je souhaite la modifier la mon programme tourne dans le vide et il peine à s'actualiser correctement.

Peux tu préciser ce qui pose problème ?

Quand on coche et décoche un ou plusieurs choix ça fonctionne correctement et chez moi ça ne mouline pas donc il doit s'agir d'autre chose : Que veux tu dire par "lorsque j'inscris une valeur et que je souhaite la modifier"

Tu l'inscris ou et tu souhaite la modifier comment ?

A+

Bonjour, je valide je coche, tout est ok.

Lorsque je change de cellule et que je retourne dedans, les nom ne saffichent plus dans la listbox mais seulement les carrés à cocher, quand je selectionne ça met du temps a répondre etc. On sent que ça mouline.

C'est plus clair maintenant?

Merci

Ça me semble pas clair ta manière de gérer la Liste...

Et le On Error Resume Next, on appelle ça mettre la poussière sous le tapis ! En matière de programmation ça ne donne généralement rien de bon.

Il faudrait que tu me confirmes ce que tu attends de cette liste déroulante :

Qu'elle mette quoi qu'il arrive tous les arguments de la liste Composition d'équipe.

Et que en plus elle te restitue ceux qui sont cochée (donc en B4) si tu y reviens : C'est ça ?

A+

Exactement c'est l'utilisation que je souhaite !

Chercher la liste et me la restituer !

Merci par avance !

Hum... J'ai un peu remanié TOUSSA :

Création du Nom TCompo dans le Gestionnaire de Nom

Et pour le code j'ai du aussi retoucher pas mal : Tu ne peux utiliser l'évènement Change sur un MultiSelect parce que tu recrées l'évènement initial à chaque étage...

Quand c'est toi qui coche ça ne pose pas de problème encore que... Mais quand c'est à la relecture (au chargement du ListBox à chaque fois que tu recoches un des éléments tu redéclanches l'évènement Change...

C'est un peu le serpent qui se mord la queue ...ou le mouvement perpétuel si tu me suis bien ?

A+

12boulbidev2-vg.xlsm (163.35 Ko)

Hum... J'ai un peu remanié TOUSSA :

Création du Nom TCompo dans le Gestionnaire de Nom

Et pour le code j'ai du aussi retoucher pas mal : Tu ne peux utiliser l'évènement Change sur un MultiSelect parce que tu recrées l'évènement initial à chaque étage...

Quand c'est toi qui coche ça ne pose pas de problème encore que... Mais quand c'est à la relecture (au chargement du ListBox à chaque fois que tu recoches un des éléments tu redéclanches l'évènement Change...

C'est un peu le serpent qui se mord la queue ...ou le mouvement perpétuel si tu me suis bien ?

A+

Bonjour je te remercie pour le temps que tu as du passer à refaire le code !

Cependant j'ai l'impression que lorsque la listbox est vide il y a une erreur qui fait planter le code complet . ( si je décoche tout = argument ou appel procédure incorrect)

As tu une solution?

merci par avance

Je regarde ça...

Hum... J'ai un peu remanié TOUSSA :

Création du Nom TCompo dans le Gestionnaire de Nom

Et pour le code j'ai du aussi retoucher pas mal : Tu ne peux utiliser l'évènement Change sur un MultiSelect parce que tu recrées l'évènement initial à chaque étage...

Quand c'est toi qui coche ça ne pose pas de problème encore que... Mais quand c'est à la relecture (au chargement du ListBox à chaque fois que tu recoches un des éléments tu redéclanches l'évènement Change...

C'est un peu le serpent qui se mord la queue ...ou le mouvement perpétuel si tu me suis bien ?

A+

Bonjour je te remercie pour le temps que tu as du passer à refaire le code !

Cependant j'ai l'impression que lorsque la listbox est vide il y a une erreur qui fait planter le code complet . ( si je décoche tout = argument ou appel procédure incorrect)

As tu une solution?

merci par avance

Bon j'ai regardé un peu le code,

J'ai apporté une petite amélioration qui supprime l'erreur lorsque b4 est vide !

Çà intervient sur le code

Function ListBoxSelected(wRng As Range)
 Dim Tablo(), Elem As Byte
 With ListBox1
  For Elem = 0 To .ListCount - 1
  .Selected(Elem) = (InStr(wRng.Value, ListBox1.List(Elem)) > 0)
  Next
 End With
End Function
Function JoinSelectedRows(objListBox As Object, Optional Separator As String = "-") As String
 Dim Tmp$, ColumnNumber As Byte, Elem As Byte, Ind As Byte
 If TypeName(objListBox) <> "ListBox" Then

  MsgBox "L'argument objLstBox (" & objListBox.Name & ") n'est pas un ListBox": Exit Function
 End If
 With objListBox
   For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then
       Tmp = Tmp & Me.ListBox1.List(i) & "-"
    End If
  Next
 End With
If Tmp <> "" Then
JoinSelectedRows = Left(Tmp, Len(Tmp) - 1)
Else
End If

End Function

Et la modif à été approtée sur la fin

If Tmp <> "" Then
JoinSelectedRows = Left(Tmp, Len(Tmp) - 1)
Else
End If

End Function

Merci pour ton aide !

C'est exactement ça mais une seule ligne aurait suffit :

 If Len(Tmp) > 0 Then JoinSelectedRows = Left(Tmp, Len(Tmp) - 1)

A+

Rechercher des sujets similaires à "liste deroulante choix multiple"