Zone de liste déroulante multicolonne Excel VBA - Macros Excel faciles

Table des matières

Ci-dessous, nous examinerons un programme en Excel VBA qui crée un Userform qui contient un zone de liste déroulante multicolonne.

Le formulaire utilisateur que nous allons créer se présente comme suit :

Pour créer ce formulaire utilisateur, exécutez les étapes suivantes.

1. Ouvrez l'éditeur Visual Basic. Si l'Explorateur de projets n'est pas visible, cliquez sur Affichage, Explorateur de projets.

2. Cliquez sur Insérer, Formulaire utilisateur. Si la boîte à outils n'apparaît pas automatiquement, cliquez sur Affichage, Boîte à outils. Votre écran doit être configuré comme ci-dessous.

3. Ajoutez l'étiquette, la zone de liste déroulante et les boutons de commande. Une fois cette opération terminée, le résultat doit être cohérent avec l'image du formulaire utilisateur présentée précédemment. Par exemple, créez un contrôle de zone de liste déroulante en cliquant sur ComboBox dans la boîte à outils. Ensuite, vous pouvez faire glisser une zone de liste déroulante sur le formulaire utilisateur.

4. Vous pouvez modifier les noms et les légendes des champs. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. C'est une bonne pratique de changer les noms des contrôles, mais ce n'est pas nécessaire ici car nous n'avons que quelques contrôles dans cet exemple. Pour modifier le libellé du formulaire utilisateur, l'étiquette et les boutons de commande, cliquez sur Affichage, Fenêtre Propriétés et cliquez sur chaque contrôle.

5. Pour afficher l'Userform, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante :

Private Sub CommandButton1_Click()
UserForm1.Show
Fin du sous-marin

Nous allons maintenant créer le Sub UserForm_Initialize. Lorsque vous utilisez la méthode Show pour le Userform, ce sous-programme sera automatiquement exécuté.

6. Ouvrez l'éditeur Visual Basic.

7. Dans l'Explorateur de projets, cliquez avec le bouton droit sur UserForm1 et puis cliquez sur Afficher le code.

8. Choisissez Userform dans la liste déroulante de gauche. Choisissez Initialiser dans la liste déroulante de droite.

9. Ajoutez les lignes de code suivantes :

Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 2
Dim Films (1 à 5, 1 à 2) en tant que chaîne
Dim i en tant qu'entier, j en tant qu'entier
Films(1, 1) = "Le Seigneur des Anneaux"
Films(2, 1) = "Vitesse"
Films(3, 1) = "Star Wars"
Films(4, 1) = "Le Parrain"
Films (5, 1) = "Pulp Fiction"
Films(1, 2) = "Aventure"
Films(2, 2) = "Action"
Films (3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drame"
ComboBox1.List = Films
Fin du sous-marin

Explication : La première ligne de code définit le nombre de colonnes de la zone de liste déroulante sur 2. Au lieu de définir le nombre de colonnes au moment de l'exécution, vous pouvez également configurer ce paramètre au moment de la conception. Pour ce faire, cliquez avec le bouton droit de la souris sur le contrôle de la zone de liste déroulante, cliquez sur Propriétés et définissez la propriété ColumnCount sur 2. Ensuite, nous déclarons et initialisons un tableau à deux dimensions. La dernière ligne de code affecte le tableau à la zone de liste déroulante.

Nous avons maintenant créé la première partie du Userform. Bien que cela ait déjà l'air soigné, rien ne se passera encore lorsque nous cliquerons sur les boutons de commande du formulaire utilisateur.

10. Dans l'Explorateur de projets, double-cliquez sur UserForm1.

11. Double-cliquez sur le bouton OK.

12. Ajoutez les lignes de code suivantes :

Private Sub CommandButton1_Click()
Décharge moi
MsgBox "Vous avez sélectionné " & ComboBox1.Value
En cas d'erreur Reprendre ensuite
MsgBox "Vous aimez " & ComboBox1.Column(1) & " films"
Fin du sous-marin

Remarque : ces lignes de code ferment le formulaire utilisateur Excel VBA et affichent l'élément et le genre sélectionnés. L'instruction « On Error Resume Next » ignore l'erreur lorsque l'utilisateur remplit son propre film (dans ce cas, aucun genre n'est disponible).

13. Double-cliquez sur le bouton Annuler.

14. Ajoutez la ligne de code suivante :

Private Sub CommandButton2_Click()
Décharge moi
Fin du sous-marin

Résultat lorsque vous sélectionnez Vitesse et cliquez sur OK.

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

wave wave wave wave wave