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
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+
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+