Zone de liste VBA

En VBA, vous pouvez créer un Zone de liste où un utilisateur peut choisir l'une des options répertoriées. La zone de liste est souvent utilisée dans les formulaires utilisateur, mais peut également être utilisée dans une feuille de calcul. Dans ce tutoriel, vous apprendrez à créer, remplir et supprimer une Listbox. Vous verrez également comment obtenir un choix d'utilisateur dans VBA et l'utiliser dans le code.

Si vous voulez apprendre à créer une ComboBox, cliquez ici : VBA ComboBox

Si vous voulez apprendre à créer une case à cocher, cliquez ici : VBA Checkbox

Créer une zone de liste

Afin d'insérer une zone de liste dans la feuille de calcul, vous devez accéder à la Onglet Développeur, Cliquez sur Insérer et sous Contrôles ActiveX choisissez Zone de liste :

Image 1. Insérer une zone de liste dans la feuille de calcul

Lorsque vous sélectionnez la Listbox que vous avez insérée, vous pouvez cliquer sur Propriétés sous le Onglet Développeur:

Image 2. Modifier les propriétés de la zone de liste

Ici, vous pouvez définir différentes propriétés de la zone de liste. Pour le début, nous avons changé l'attribut Nom à lstListBox. Maintenant, nous pouvons utiliser la Listbox avec ce nom en code VBA.

Remplir une Listbox en code VBA

Tout d'abord, nous devons remplir la zone de liste avec des valeurs. Dans la plupart des cas, une zone de liste doit être remplie lorsque le classeur est ouvert. Pour cette raison, nous devons mettre un code pour remplir la Listbox dans l'objet Cahier d'exercices, procédure Ouvert. Cette procédure est exécutée à chaque fois qu'un utilisateur ouvre le classeur. Voici le code :

123456789 Avec Sheet1.lstListBox.AddItem "Jean".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminer par

Comme vous pouvez le voir sur l'image 3, nous avons rempli notre liste de 5 noms (John, Michael, Jennifer, Lilly et Robert) :

Image 3. Remplir la liste dans VBA

Remplir une zone de liste à partir d'une plage de cellules

Une autre façon possible de remplir une Listbox est de laisser un utilisateur le faire. Une Listbox peut être liée à la plage de cellules. Par conséquent, chaque fois qu'un utilisateur entre une nouvelle valeur dans la plage de cellules, la zone de liste sera mise à jour avec cette valeur.

Si vous souhaitez l'activer, vous devez vous rendre sur le Propriétés de la ListBox et définissez l'attribut ListRemplirPlage:

Image 4. Remplir la zone de liste à partir de la plage de cellules

Nous avons lié notre Listbox à la plage E2:E5, où nous avons mis les noms que nous voulons (Nathan, Harry, George, Roberta). Par conséquent, la zone de liste est maintenant remplie avec ces noms.

Obtenir un élément sélectionné d'une zone de liste dans VBA

Le but d'une Listbox est d'obtenir un choix d'utilisateurs. Afin de récupérer une valeur sélectionnée par un utilisateur, vous devez utiliser ce code :

123 Dim strSelectedItem en tant que variantestrSelectedItem = Sheet1.lstListBox.Value

La sélection des utilisateurs est dans l'attribut Valeur de Feuille1.lstListbox objet. Cette valeur est affectée à la variable strSelectedItem:

Image 5. Obtenez une valeur sélectionnée dans la liste dans VBA

Nous avons sélectionné Harry dans la Listbox et exécuté la procédure. Comme vous pouvez le voir sur l'image 5, la valeur du strSelectedItem est Harry, qui est la valeur que nous avons sélectionnée. De plus, vous pouvez traiter cette variable dans le code.

Effacer une zone de liste

Pour effacer une liste dans VBA, vous devez utiliser Dégager méthode de Feuille1.lstListBox objet. Cela supprimera tous les éléments de la liste. Voici le code :

1 Sheet1.lstListBox.Clear

Lorsque nous exécutons le code, nous obtenons la Listbox vide :

Image 6. Effacer la liste

Utiliser une zone de liste dans un formulaire utilisateur

Comme nous l'avons mentionné, Listbox est le plus souvent utilisé dans Userforms. Pour expliquer comment vous pouvez le faire, nous allons d'abord insérer un Userform. Dans l'éditeur VBA, faites un clic droit sur le nom du module, cliquez sur Insérer et choisissez Formulaire utilisateur:

Image 7. Insérer un formulaire utilisateur

Pour afficher les commandes d'insertion, vous devez activer le Boîte à outils. Pour ce faire, cliquez sur leBoîte à outils icône dans la barre d'outils. Après cela, vous obtiendrez les fenêtres avec tous les contrôles disponibles. Vous pouvez cliquer sur Zone de liste pour le créer dans le Userform.

Image 8. Insérer une liste dans le formulaire utilisateur

Nous nommerons la ComboBox cmbComboBox. Afin de le remplir avec des valeurs, nous devons mettre le code suivant dans la méthode Initialiser de l'objet Formulaire utilisateur:

12345678910111213 Private Sub UserForm_Initialize()Avec UserForm1.lstListBox.AddItem "Jean".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminer parFin du sous-marin

Ce code se déclenche à chaque fois qu'un utilisateur exécute le Userform et remplit la Listbox avec ces 5 noms :

Image 9. La Listbox avec des valeurs dans le Userform

Si vous souhaitez obtenir la valeur sélectionnée à partir de la zone de liste déroulante, vous devez utiliser la même logique pour la zone de liste déroulante dans une feuille de calcul, ce qui est expliqué plus haut dans l'article.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave