Zone de liste déroulante VBA

ComboBox permettre aux utilisateurs de sélectionner une option dans une liste de menu déroulant. Les zones de liste déroulante peuvent être créées dans des formulaires utilisateur VBA ou avec une feuille de calcul Excel. Dans ce didacticiel, vous apprendrez à créer et à manipuler des ComboBox dans VBA et dans des feuilles de calcul Excel.

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

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

Créer une zone de liste déroulante dans une feuille de calcul Excel

Pour insérer une ComboBox dans la feuille de calcul, vous devez aller à la Onglet Développeur, Cliquez sur Insérer et sous Contrôles ActiveX choisissez Boîte combo:

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

Lorsque vous sélectionnez la ComboBox 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 déroulante

Ici, vous pouvez définir différentes propriétés de la ComboBox. Pour commencer, nous avons modifié l'attribut Nom à cmbComboBox. Maintenant, nous pouvons utiliser la ComboBox avec ce nom en code VBA.

Remplir une ComboBox en code VBA

Tout d'abord, nous devons remplir la ComboBox avec des valeurs. Dans la plupart des cas, une zone de liste déroulante doit être remplie lorsque le classeur est ouvert. Pour cette raison, nous devons mettre un code pour remplir le ComboBox 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.cmbComboBox.AddItem "Jean".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminer par

Lorsque vous cliquez sur le menu déroulant, vous aurez le choix entre 5 noms (John, Michael, Jennifer, Lilly et Robert) :

Image 3. Remplir la ComboBox dans VBA

Remplir un ComboBox à partir d'une plage de cellules

Une autre façon possible de remplir une ComboBox est de laisser un utilisateur le faire. Une ComboBox peut être liée à la plage de cellules. Dans cette approche, chaque fois qu'un utilisateur entre une nouvelle valeur dans la plage de cellules, le ComboBox se mettra à jour avec cette valeur.

Si vous souhaitez l'activer, vous devez vous rendre sur le Propriétés de la ComboBox et définissez l'attribut ListRemplirPlage à la plage de cellules (dans notre cas E2:E5) :

Image 4. Remplir la ComboBox à partir de la plage de cellules

Nous avons associé notre ComboBox à la gamme E2:E5, où nous avons mis les noms que nous voulons (Nathan, Harry, George, Roberta). En conséquence, la ComboBox est maintenant remplie avec ces noms :

Image 5. ComboBox peuplé de la plage de cellules

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

Le but d'une ComboBox est d'obtenir le choix des utilisateurs. Afin de récupérer un choix d'utilisateurs, vous devez utiliser ce code :

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

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

Image 6. Obtenez une valeur sélectionnée de la ComboBox dans VBA

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

Effacer une ComboBox

Si vous souhaitez effacer une ComboBox dans VBA, vous devez utiliser Dégager méthode de Sheet1.lstComboBox objet. Cela supprimera tous les éléments de la ComboBox. Voici le code :

1 Sheet1.cmbComboBox.Clear

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

Image 7. Effacer la ComboBox

Utiliser une ComboBox dans un Userform

Comme nous l'avons mentionné, Combobox est le plus souvent utilisé dans les 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 8. 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 Boîte combo pour le créer dans le Userform.

Image 9. Insérer une ComboBox dans le Userform

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.cmbComboBox.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 Combobox avec ces 5 noms :

Image 10. La ComboBox 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