Sélection de plusieurs éléments dans une liste avec une zone de liste ou ListBox dans un formulaire personnalisé ou Userform, Excel VBA

Vous pouvez sélectionner un ou plusieurs éléments dans la zone liste. La propriété MultiSelect définit le mode dans lequel un tel choix est autorisé.
Les valeurs valides pour la propriété MultiSelect sont des constantes:
■ fmMultiSelectSingle : un seul élément est autorisé;
■ fmMultiSelectMulti : cliquer sur un élément ou appuyer sur la touche <Espace> sélectionne un élément ou le désélectionne;
■ fmMultiSelectExtended : cliquer sur un élément tout en maintenant la touche <Ctrl> enfoncée sélectionne l’élément ou le désélectionne. Cliquer sur un élément tout en appuyant sur la touche <Maj> ajoute une plage d’éléments à la sélection.
La propriété Selected est utilisée pour identifier les éléments sélectionnés. Si sa valeur est True, alors l’élément est sélectionné, s’il est False, alors il n’est pas sélectionné. La propriété List renvoie l’élément à l’index spécifié. Il ne faut pas oublier que les éléments sont indexés à partir de 0. Le nombre total d’éléments de liste est renvoyé par la propriété ListCount.

Figure 1: Sélection de plusieurs éléments dans une liste

Nous allons créer un formulaire sur lequel nous allons placer la zone de liste et le bouton de commande et nous allons définir les valeurs de propriétés, comme indiqué dans le tableau suivant.
Tableau : Valeurs de propriété définies dans la fenêtre Propriétés

Objet Propriété Valeur
Zone de liste Name LstNum
Bouton de commande Name CmdOK
Caption OK

Lorsque le formulaire est initialisé, il est rempli et un mode est défini qui vous permet de sélectionner plusieurs éléments. Le fait d’appuyer sur le bouton OK provoque la lecture séquentielle des éléments sélectionnés et l’établissement sur leur base d’une ligne d’information, qui s’affiche dans la boîte de dialogue.

Private Sub UserForm_Initialize()

   lstNum.AddItem "Un"

   lstNum.AddItem "Deux"

   lstNum.AddItem "Trois"

   lstNum.AddItem "Quatre"

   lstNum.AddItem "Cinq"

   lstNum.AddItem "Six"

   lstNum.AddItem "Sept"

   lstNum.AddItem "Huit"

   lstNum.AddItem "Neuf"

   lstNum.AddItem "Dix"

   lstNum.AddItem "Onze"

   lstNum.AddItem "Douze"

   lstNum.MultiSelect = fmMultiSelectMulti

End Sub

Private Sub cmdOK_Click()

   Dim i As Integer

   Dim s As String

   For i = 0 To lstNum.ListCount - 1

      If lstNum.Selected(i) Then

         s = s + lstNum.List(i) & vbCr

      End If

   Next

   If s = Empty Then

      MsgBox "Tu n'as pas choisi!"

   Else

      MsgBox s

   End If

End Sub

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x