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 :

VBA - Listbox Multiple - Déterminer si au moins une valeur a été sélectionnée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Clinical Project Manager
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Clinical Project Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Par défaut VBA - Listbox Multiple - Déterminer si au moins une valeur a été sélectionnée
    Bonjour à Tous,

    J'ai une Listbox dans un Userform (VBA Excel 2007) pour laquelle j'aimerais tester si une valeur au moins a été choisie par l'utilisateur.

    Cette Listbox est de type multiple (propriété Multiselect = 1).

    Pour une Listbox de type Single, (propriété Multiselect = 0), on peut testez la valeur de Listbox1.ListIndex qui sera à -1 si rien n'est choisi.
    Malheureusement , et sauf erreur de ma part, pour le type multiple, Listbox1.ListIndex retourne la dernière valeur ayant eu le focus, ce qui ne me sert à rien ici...

    Existerait il un moyen plus simple que de boucler avec un code style:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    aumoinsunchoix=False
     
    With Listbox1
         for i = 0 to .ListCount - 1
              if .selected(i)= True then aumoinsunchoix=True
         next
    End With
     
    if aumoinsunchoix = False then MsgBox "Aucun choix selectionné"
    Merci par avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Effectivement, il te faut boucler mais tu peux sortir de la boucle sitôt le premier choix rencontré :
    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
     
    Private Sub CommandButton1_Click()
     
        Dim Choix As Boolean
     
        Dim I As Integer
     
        With ListBox1
            For I = 0 To .ListCount - 1
                If .Selected(I) = True Then Choix = True: Exit For
            Next
        End With
     
        MsgBox IIf(Choix = True, "Au moins un choix selectionné", "Aucun choix selectionné")
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Clinical Project Manager
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Clinical Project Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Par défaut
    Merci Theze pour ta réponse.
    C'est bien ce que je pensais, il faut passer par une boucle.
    Et ton astuce de "sortie de boucle" est effectivement un plus dans le code...

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

Discussions similaires

  1. [DATA] [IF] Si au moins une valeur de la variable =
    Par alers dans le forum SAS Base
    Réponses: 7
    Dernier message: 05/05/2014, 16h45
  2. [XL-2007] Pb pour récupérer une valeur dans une Listbox: Obligé de cliquer au moins une fois
    Par Seb_VB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2011, 16h10
  3. [XL-2010] Macro VBA pour supprimer des caractère situés après une valeur
    Par Guillaume_PMO dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/03/2011, 17h06
  4. [VBA-E] réaliser un glisser-déplacer dans une listbox
    Par bandit boy dans le forum Macros et VBA Excel
    Réponses: 74
    Dernier message: 07/04/2006, 12h10
  5. [VBA-A]récuperation de champs à partir d'une listbox
    Par jouf dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/04/2006, 15h43

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