Bonjour à tous,
Existe-t-il une façon de bloquer/limiter le nombre de sélections que l'utilisateur peut faire dans un listbox multiselect ?
Merci pour votre aide !
Blord
Bonjour à tous,
Existe-t-il une façon de bloquer/limiter le nombre de sélections que l'utilisateur peut faire dans un listbox multiselect ?
Merci pour votre aide !
Blord
Bonjour.
Voici ce que je propose :
Dans cet exemple, si l'utilisateur choisit plus de 3 items dans le formulaire que j'ai appelé UserForm1, alors un message d'erreur s'affiche et il ne peut poursuivre.
J'espère avoir pu un peu t'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub CommandButton1_Click() With UserForm1.ListBox1 a = 0 For I = 0 To .ListCount - 1 If .Selected(I) = True Then a = a + 1 End If Next I If a > 3 Then MsgBox "Vous ne pouvez pas sélectionner autant d'items" Else MsgBox "OK" ' et suite du code... End If End With End Sub
Bonjour,
dans ListBox_clik tester le nombre de ListBox.selected(i).
A+
Edit:
Désolé Nanou28, je n'avais pas eu l'occasion de lire ton poste et tu à tout à fait raison.
Edit2 : sauf que ce devrait être dans..
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private Sub ListBox1_Click()
Bonjour à vous 2,
J'ai testé le code, mais ça ne fonctionne pas... Merci quand même de votre aide...
Blord
Bonsoir, Blord,
ça "ne fonctionne pas", probablement parce que l'essentiel t'a échappé (rendre False la sélection si > max)
Je t'aurais volontiers dit comment corriger/compléter ton propre code sur la base de ce qui t'a été dit, mais je ne suis pas non plus d'accord avec le principe d'une boucle "vérificatrrice" du nombre de lignes déjà sélectionnées avant d'en sélectionner une nouvelle. Un tel principe est d'une gourmandise proportionnelle au nombre d'articles de ta listbox !
VB est quand même capable de compter et de savoir où il en est, non ?...
Essaye ceci, sans en changer le moindre petit iota , même si certains aspects t'échapperont peut-être :
Voilà ! pas la moindre boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub ListBox1_Click() Static nb As Integer Dim choisi As Integer, max As Integer max = 2 ' tu mets ici la valeur que tu veux (nombre maxi de sélmections autorisées) choisi = ListBox1.ListIndex If ListBox1.Selected(choisi) = False Then nb = nb - 1: Exit Sub If nb >= max Then ListBox1.Selected(choisi) = False nb = nb + 1 End Sub
Bonjour ucfoutu, le forum,
Je veux bien ne pas comprendre le code, c'est effectivement de moindre importance si j'arrive à le faire fonctionner .... :-)
(Il est par contre souvent utile de comprendre le code afin de toujours progresser en VBA...)
Voir le fichier exemple ci-joint ou j'ai créé un userform avec un listbox multiselect avec le code...
On peut sélectionner le nombre d'items que l'on veut ???
Merci de m'aider....
Blord
Désolé, mais je n'ouvre (comme de nombreux autres) jamais un fichier xls non créé par moi-même (surtout sur la machine depuis laquelle je te réponds).
Tout problème peut faire l'objet de son exposé et des quelques lignes de code qui le concernent.![]()
Partager