Médiaforma

VBA Excel – Des ListBox dans une boîte de dialogue personnalisée

Print Friendly, PDF & Email

Vous utiliserez des contrôles ListBox pour insérer des zones de liste dans une boîte de dialogue personnalisée. Ces contrôles permettent de choisir un ou plusieurs éléments dans une liste de choix.

Pour insérer un ListBox, glissez-déposez un contrôle ListBox sur la boîte de dialogue personnalisée :

Le ListBox peut être rempli en faisant référence à un bloc de cellules d’une feuille de calcul ou à l’aide de code VBA.

Remplissage avec un bloc de cellules

Vous pouvez remplir un ListBox avec un bloc de cellules dans une feuille de calcul. Pour cela, renseignez la propriété RowSource du contrôle ListBox :

En supposant que les cellules A1 à A10 de la feuille Feuil1 contiennent les données suivantes :

Voici le contenu du ListBox :

Vous voulez affecter une valeur par défaut à la zone de liste ? Rien de plus simple : affectez l’index de cette valeur à la propriété ListIndex du contrôle (la valeur 0 correspond au premier élément de la liste). Cette affectation se fera par exemple dans la procédure UserForm_Activate(). Par exemple, pour choisir Abou Dabi par défaut (la cinquième valeur de la liste), vous utiliserez cette instruction dans la procédure UserForm_Activate() :

Private Sub UserForm_Activate()

  ListBox1.ListIndex = 4

End Sub

Remplissage avec du code VBA

Pour remplir un contrôle ListBox avec du code VBA, vous utiliserez la méthode AddItem. Ici par exemple, on insère les capitales Paris, Amsterdam, Londres, Washington D.C., Abou Dabi, Alger, Ankara, Brasilia, Bucarest et Varsovie dans le contrôle ListBox1 :

Private Sub UserForm_Activate()

    ListBox1.AddItem "Paris"

    ListBox1.AddItem "Amsterdam"

    ListBox1.AddItem "Londres"

    ListBox1.AddItem "Washington D.C."

    ListBox1.AddItem "Abou Dabi"

    ListBox1.AddItem "Alger"

    ListBox1.AddItem "Ankara"

    ListBox1.AddItem "Brasilia"

    ListBox1.AddItem "Bucarest"

    ListBox1.AddItem "Varsovie"

End Sub

Le résultat est le même que précédemment :

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.