Médiaforma

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

Partagez cet article sur vos réseaux

Vous utiliserez des contrôles ComboBox pour insérer des listes déroulantes dans une boîte de dialogue personnalisée.

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

La ComboBox peut être remplie 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

Pour référencer un bloc de cellules, renseignez la propriété RowSource du contrôle ComboBox :

En supposant que les cellules A2 à A6 de la feuille Feuil2 contiennent les données suivantes :

Voici le contenu du ComboBox :

Vous voulez affecter une valeur par défaut à la liste déroulante ? 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 Nathalie par défaut (la troisième valeur de la liste), vous utiliserez cette instruction dans la procédure UserForm_Activate() :

Private Sub UserForm_Activate()

  ComboBox1.ListIndex = 2

End Sub

Remplissage avec du code VBA

Pour remplir un contrôle ComboBox avec du code VBA, vous utiliserez la méthode AddItem. Ici par exemple, on insère les prénoms Bertrand, Pierre, Nathalie, Pierric et Liliane dans le contrôle ComboBox1 :

Private Sub UserForm_Initialize()

  ComboBox1.AddItem "Bertrand"

  ComboBox1.AddItem "Pierre"

  ComboBox1.AddItem "Nathalie"

  ComboBox1.AddItem "Pierric"

  ComboBox1.AddItem "Liliane"

End Sub

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