Une zone de liste déroulante est une liste déroulante où un utilisateur peut sélectionner un élément ou remplir sa / son choix. Pour créer une zone de liste déroulante dans Excel VBA, exécutez les étapes suivantes.

  1. Dans l’onglet Developer, cliquez sur Insérer.

  2. Dans le groupe Contrôles ActiveX, cliquez sur Combo Box.

Create a combo box in Excel VBA

  1. Faites glisser une zone de liste déroulante sur votre feuille de calcul.

Drag a Combo Box

Remarque: vous pouvez modifier le nom d’un contrôle par un clic droit sur le contrôle (assurez-vous que le mode Création est sélectionné) et puis en cliquant sur Propriétés. Pour l’instant, nous partirons ComboBox1 comme le nom de la zone de liste déroulante.

Créer un classeur ouvert l’événement. Code ajouté au classeur ouvert l’événement sera exécuté par Excel VBA lorsque vous ouvrez le classeur.

  1. Ouvrez Visual Basic Editor.

  2. Double-cliquez sur ce classeur dans l’Explorateur de projet.

  3. Choisissez le classeur dans la liste déroulante gauche et choisissez Ouvrir de la droite liste déroulante.

Workbook Open Event in Excel VBA

  1. Pour ajouter des éléments à la zone de liste déroulante, ajoutez les lignes de code suivantes au classeur ouvert l’événement:

With Sheet1.ComboBox1

.AddItem "Paris"

.AddItem "New York"

.AddItem "London"

End With

Remarque: utilisez Feuille2 si votre zone de liste déroulante est situé sur la deuxième feuille de calcul, Feuil3 si votre zone de liste déroulante est situé sur la troisième feuille de calcul, etc. Si vous utilisez ces lignes de code en dehors de l’événement classeur ouvert, vous pouvez ajouter les lignes de code ci-dessous avant que ces lignes de code. La première ligne de code efface la zone de liste déroulante. De cette façon, vos articles ne seront pas ajoutés plusieurs fois si vous exécutez votre code plus d’une fois. La deuxième ligne de code efface votre choix.

ComboBox1.Clear

ComboBox1.Value = ""
  1. Pour un lien vers cette zone de liste déroulante à une cellule, un clic droit sur la zone de liste déroulante (rendre le mode de conception sûr est sélectionné) et cliquez sur Propriétés. Remplissez D2 pour LinkedCell.

LinkedCell

Remarque: voir aussi la propriété ListFillRange pour remplir une zone de liste déroulante avec une plage de cellules.

  1. Enregistrez, fermez et rouvrez le fichier Excel.

Résultat:

Combo Box

Bien que dans certaines situations, il peut être utile de placer directement une zone de liste déroulante sur votre feuille de calcul, une zone de liste déroulante est particulièrement utile lorsqu’il est placé sur un formulaire.