VBA ComboBox - Comment créer et utiliser ComboBox dans VBA?

Boîte de liste déroulante Excel VBA

ComboBox est la fonctionnalité de formulaire utilisateur dans VBA , ils sont différents des zones de texte car les zones de texte sont utilisées pour ne contenir que du texte et nous permettons à l'utilisateur de saisir n'importe quel type de données, mais en utilisant des zones de liste déroulante, nous limitons l'utilisateur pour le type de réponse que nous désirons ainsi les données sont de manière ordonnée, elles sont similaires à la validation des données de liste dans Excel.

ComboBox peut être comparé à une liste déroulante dans Excel, dans des feuilles de calcul. Nous avons utilisé la validation des données pour fournir une liste déroulante, mais dans VBA, il existe une fonction de formulaire utilisateur dans laquelle elle est utilisée pour fournir une liste déroulante dans n'importe quel formulaire utilisateur, mais si nous voulons utiliser une zone de liste déroulante dans Excel, nous pouvons y accéder également à partir de la section développeur à partir de là, nous pouvons créer des zones de liste déroulante pour des cellules individuelles ou multiples.

Combo Box est très similaire à la liste déroulante que nous avons dans une feuille de calcul Excel; avec la zone de liste déroulante, nous pouvons stocker des valeurs prédéterminées afin que les utilisateurs effectuent la sélection dans la liste disponible à partir de la zone de liste déroulante. La zone de liste déroulante est généralement utilisée avec les formulaires utilisateur dans le cadre de l'obtention des commentaires des utilisateurs.

Les formulaires utilisateur sont utiles, mais le fait d'avoir d'autres outils sur le formulaire utilisateur est ce qui rend le formulaire utilisateur si spécial. L'un des outils que nous utilisons souvent comme outil pour le formulaire utilisateur est "ComboBox".

Top 2 des façons de créer une ComboBox VBA

# 1 - Utilisation du codage direct

Tout d'abord, nous verrons comment utiliser Combo Box avec la feuille de calcul. Ouvrez l'une des feuilles de calcul du classeur Excel, accédez à l'onglet Développeur, et sous cet onglet, nous avons un outil appelé "Insérer". Cliquez dessus, et sous celui-ci, nous avons deux options Contrôles Active X et contrôles de formulaire dans Excel.

Dans "Contrôles Active X", choisissez "Zone de liste déroulante".

Vous pouvez maintenant dessiner cet objet sur n'importe laquelle des feuilles de calcul.

Cliquez avec le bouton droit de la souris sur la liste déroulante et choisissez l'option «Propriétés».

Lorsque vous choisissez des propriétés, cela ouvrira une énorme liste de propriétés d'une zone de liste déroulante.

Pour cette zone de liste déroulante, nous allons donner une liste de noms de département, alors changez la propriété name de la zone de liste déroulante en «DeptComboBox».

Désormais, cette zone de liste déroulante sera désignée par le nom «DeptComboBox». Nous devons donner des noms de département prédéterminés, alors j'ai ici une liste de noms de département.

Nous devons maintenant ajouter ces valeurs à la liste de la zone de liste déroulante. Nous pouvons le faire de deux manières, via le codage ou via le gestionnaire de noms.

Double-cliquez sur le Combobox, et cela vous mènera à la procédure de macro VBA.

Mais nous avons besoin de voir ces noms de service lorsque le classeur s'ouvre, alors double-cliquez sur "ThisWorkbook".

Dans la liste déroulante, choisissez "Classeur".

Dans les options, choisissez "Ouvrir".

Maintenant, il créera un blanc comme celui ci-dessous.

Dans cette macro, entrez le code ci-dessous.

Code:

Private Sub Workbook_Open () With Worksheets ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operations" .AddItem "Audit" .AddItem "Client Servicing" End With End Sub

Ok, maintenant enregistrez et fermez le classeur. Lorsque vous rouvrez le classeur, nous pourrions voir les noms de service qu'il contient.

# 2 - Utilisation de UserForm

Une autre façon d'ajouter des valeurs à la zone de liste déroulante consiste à utiliser le formulaire utilisateur. Tout d'abord, donnez un nom aux cellules en tant que "Département".

Accédez à Visual Basic Editor et insérez le formulaire utilisateur à partir de l'option INSERT.

Le nouveau formulaire utilisateur est maintenant créé.

À côté du formulaire utilisateur, nous pouvons voir «Boîte à outils» de cette boîte à outils, nous pouvons insérer «Boîte à outils».

Now the combo box is embedded in the user form. In this method, to open the properties option, select the combo box and press the F4 key to open the properties window.

Scroll down the properties tab and choose “Row Source.”

For this “Row Source,” enter the name that we had given to department name cells.

Now this combo box holds the reference of the name “Department.”

Now run the user form by using the run button.

Now we can see a list of department names in the combo box on the user form.

Practically user form is associated with a combo box, text box, and many other tools. We will create a simple data entry user form with a text box & combo box.

Create a user form like the below.

Create two Command Buttons.

Double click on the “SUBMIT” button it will open up below macro.

Inside this macro, add the below code.

Code:

Private Sub CommandButton1_Click () Dim LR As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Cells (LR, 1) .Value = TextBox1.Value Cells (LR, 2) .Value = ComboBox1 .Value End Sub

Maintenant, double-cliquez sur le bouton «ANNULER» et ajoutez le code ci-dessous.

Maintenant, dans la feuille de calcul, créez un modèle comme ci-dessous.

Exécutez maintenant le formulaire utilisateur et il s'ouvrira comme ceci.

Entrez le nom de l'employé et choisissez le nom du service dans la liste déroulante.

Cliquez sur le bouton SOUMETTRE et voyez la magie.

Nous avons les valeurs saisies dans le format de table que nous avons créé.

Choses dont il faut se rappeler

  • COMBO BOX a également ses propres propriétés.
  • L'ajout de valeurs à la liste se fait de deux manières. L'un est un moyen de codage et un autre est une référence de nom de plage.
  • COMBO BOX fait généralement partie du formulaire utilisateur.

Articles intéressants...