IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Limiter le nombre de sélection dans un listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut Limiter le nombre de sélection dans un listbox
    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

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Par défaut
    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.

    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
    J'espère avoir pu un peu t'aider.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    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()

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut
    Bonjour à vous 2,

    J'ai testé le code, mais ça ne fonctionne pas... Merci quand même de votre aide...

    Blord

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    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 :

    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
    Voilà ! pas la moindre boucle.

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut
    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
    Fichiers attachés Fichiers attachés

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Limiter le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/04/2006, 15h57
  2. Limiter le nombre de caractère dans un textearea?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/01/2006, 02h24
  3. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  4. Sélection dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/04/2005, 22h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo