/ / Excel Liste déroulante multicolonnes VBA

Excel Combo VBC multicolonnes

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:

Zone de liste déroulante multicolonne dans Excel VBA

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

1. Ouvrez Visual Basic Editor. Si l'explorateur de projet n'est pas visible, cliquez sur Affichage, Explorateur de projets.

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

Configuration de l'écran du formulaire utilisateur dans Excel VBA

3. Ajoutez l'étiquette, la liste déroulante et les boutons de commande. Une fois que cela est terminé, le résultat doit être cohérent avec l'image du Userform 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 liste déroulante sur le formulaire utilisateur.

4 Vous pouvez modifier les noms et les légendes des contrôles. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. Il est judicieux de changer le nom des contrôles, mais cela n’est pas nécessaire ici car nous n’avons que quelques contrôles dans cet exemple. Pour modifier la légende des boutons Userform, Label et Command, cliquez sur View, Properties Window, puis sur chaque contrôle.

5. Pour afficher le formulaire utilisateur, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

6. Ouvrez Visual Basic Editor.

7. Dans l'Explorateur de projet, cliquez avec le bouton droit sur UserForm1, 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 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Explication: La première ligne de code définit le nombre de colonnes de la liste déroulante sur 2. Au lieu de définir le nombre de colonnes lors de l'exécution, vous pouvez également configurer ce paramètre lors de la conception. Pour ce faire, cliquez avec le bouton droit de la souris sur le contrôle 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 liste déroulante.

Nous avons maintenant créé la première partie du Userform. Bien que cela ait déjà l'air sympa, rien ne se passera quand on cliquera sur les boutons de commande du Userform.

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

11. Double-cliquez sur le bouton OK.

12. Ajoutez les lignes de code suivantes:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Remarque: ces lignes de code ferment le formulaire utilisateur VBA Excel et affichent l'élément et le genre sélectionnés. L'instruction "On Error Resume Next" ignore l'erreur lorsque l'utilisateur complète 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()

Unload Me

End Sub

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

Résultat de la zone de liste déroulante multicolonne

Résultat de la zone de liste déroulante multicolonne

Lisez aussi: