Une zone de liste déroulante sur un formulaire utilisateur est comme un menu déroulant, qui peut être utilisé pour choisir une option parmi les options disponibles. C’est comme le menu déroulant que nous créons en utilisant la validation des données sur des feuilles de calcul.

Dans la plupart des formulaires numériques, vous devez avoir vu au moins une zone de liste déroulante. Cela aurait pu être pour sélectionner un état dans une liste d’états, un cours dans une liste de cours, un pays dans une liste de pays, etc. Dans cet article, nous allons apprendre comment ajouter une combobox dans un formulaire utilisateur VBA, comment pour initialiser la zone de liste déroulante avec des valeurs et comment récupérer la valeur de la zone de liste déroulante.

Ajout d’une zone de liste déroulante à un formulaire utilisateur Pour ajouter une zone de liste déroulante à un formulaire utilisateur, vous devez d’abord avoir un formulaire utilisateur.

Dah !. Alors ouvrez VBE en utilisant CTRL + F11. Faites un clic droit sur le classeur, allez à insérer et cliquez sur Userform. Vous avez ajouté un formulaire utilisateur. Vous pouvez en savoir plus sur les formulaires utilisateur dans VBA link: / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [ici].

image

Maintenant, dans la boîte à outils, choisissez combobox. C’est la quatrième option sur la rangée du haut. Si vous ne pouvez pas voir la boîte à outils. Allez dans Affichage dans le menu, cliquez sur Boîte à outils. La boîte à outils apparaîtra.

image

J’ai ajouté une étiquette d’états car cette zone de liste déroulante contiendra une liste de certains états et un bouton d’envoi pour soumettre le formulaire.

Comment initialiser une combobox dans userform? C’est la partie où la plupart des gens font des erreurs. Parfois, les apprenants écrivent le code pour charger les valeurs dans la liste déroulante puis soumettent des boutons. Et lorsqu’ils chargent le formulaire utilisateur, la zone de liste déroulante n’affiche aucune valeur. Pour charger la combobox, vous devez écrire le code avant de charger le formulaire utilisateur. Cela peut être fait dans le module, c ou le bouton où vous chargez le formulaire. Le code pour charger la liste déroulante doit venir avant la commande formname.show.

Chargement de la liste déroulante dans le sous-programme d’appel UserForm

Disons que je veux coder en dur un tableau dans la liste déroulante d’état. J’écrirai donc un sous-programme qui chargera le formulaire utilisateur pour remplir les informations. Voir le code ci-dessous.

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

Je définis un tableau « états » qui contient quelques noms d’états indiens.

Maintenant, j’utilise le nom du formulaire utilisateur pour accéder à la zone de liste déroulante car la zone de liste est une partie de la forme utilisateur.

Le nom de mon formulaire utilisateur est userform1. Et le nom de combobox est combobox1. Ce sont des noms par défaut. Vous pouvez les modifier depuis la fenêtre des propriétés.

Ensuite, j’initialise la propriété list de la combobox avec des états.

Et puis je montre le userform1 en utilisant la commande show.

Lorsque vous exécutez le code ci-dessus, la zone de liste déroulante aura tous les états répertoriés.

image

Initialisation de Combobox à l’aide de l’événement UserForm_Initialize ().

Une autre méthode de chargement des composants combobox sur userform consiste à utiliser l’événement initialize. Cet événement s’exécute avant le chargement du formulaire utilisateur.

Tout ce que vous voulez faire avant le chargement du formulaire utilisateur, vous pouvez le faire ici.

L’une de ces choses consiste à charger des éléments de combobox. Double-cliquez donc sur userform pour ouvrir la zone de codage dans l’objet userform. Maintenant, dans le menu déroulant de gauche, sélectionnez userform. Ensuite, dans le menu déroulant de droite, sélectionnez initialiser.

image

Un sous-nom vide UserForm_Initialize () sera inséré. Tout ce qui est écrit dans ce sous sera exécuté avant que le formulaire utilisateur n’apparaisse.

Nous écrivons donc ici le code d’initialisation de la zone de liste déroulante.

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

Notez que nous n’avons pas de commande userform1.show ici. C’est toujours dans ce module. Ce sous-marin sera utilisé pour afficher notre formulaire utilisateur à l’écran.

Sub load_userform()

UserForm1.Show

End Sub

Ainsi, les utilisateurs exécuteront load_userform sub en utilisant une commande, un bouton ou un élément attribué à une macro. Lorsque le compilateur exécute la commande code userform1.show, il exécute immédiatement l’événement useforma_initialize (). Ensuite, il montre le formulaire utilisateur aux utilisateurs.

Remarques:

Si vous écrivez le code pour initialiser la zone de liste déroulante avec des valeurs dans la commande button1 click, la zone de liste déroulante n’affichera rien.

Pour initialiser la zone de liste déroulante avec des valeurs, chargez-la dans tout événement qui se produit avant que l’utilisateur n’atteigne la zone de liste déroulante à remplir.

Récupération de la valeur de ComboBox Nous utilisons donc des formulaires pour obtenir des informations. Et pour utiliser ces informations, nous devons les récupérer. Pour obtenir une valeur de la liste déroulante userform, nous utilisons la propriété combobox.value. En général, nous récupérons les valeurs des éléments du formulaire une fois que l’utilisateur a rempli le formulaire et soumis le formulaire à l’aide du bouton d’envoi. Nous pouvons donc utiliser l’événement commandbutton_click. Insérez donc un bouton de commande et écrivez soumettre dessus, si vous ne l’avez pas déjà. Maintenant, double-cliquez dessus et vous serez à l’intérieur de l’événement commandButton_click.

Créez maintenant une variable pour stocker la valeur. Enregistrez-le sur une feuille si vous le souhaitez. Enfin, quittez le formulaire en utilisant la commande Unload Me. Comme indiqué dans le code ci-dessous.

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

Alors oui les gars, c’est ainsi que vous utilisez combobox dans les userforms VBA. J’espère que j’ai été explicatif et pertinent. Si vous avez des questions concernant ce sujet ou toute autre question liée à VBA, posez-les moi dans la section commentaires ci-dessous.

Articles liés:

link: / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [Premiers pas avec Excel VBA UserForms] | * Je vais vous expliquer comment créer un formulaire dans Excel, comment l’utiliser Boîte à outils VBA, comment gérer les entrées utilisateur et enfin comment stocker les entrées utilisateur. Nous allons parcourir ces sujets en utilisant un exemple et un guide étape par étape.

lien: / general-topics-in-vba-vba-variables-in-excel [Variables VBA dans Excel] | * VBA signifie Visual Basic pour Applications.

C’est un langage de programmation de Microsoft. Il est utilisé avec les applications Microsoft Office telles que MSExcel, MS-Word et MS-Access, tandis que les variables VBA sont des mots-clés spécifiques.

link: / general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope] | * Dans tous les langages de programmation, nous avons des spécificateurs d’accès aux variables qui définissent d’où une variable définie peut être accédée. Excel VBA ne fait pas exception. VBA a également des spécificateurs de portée.

lien: / cells-ranges-rows-and-columns-in-vba-quelle-est-la-difference-entre-byref-and-byval-arguments-vba-interview-question [Arguments ByRef et ByVal] | Lorsqu’un argument est passé en tant qu’argument ByRef à un autre sous ou fonction, la référence de la variable réelle est envoyée. Toutes les modifications apportées à la copie de la variable seront reflétées dans l’argument d’origine.

lien: / files-workbook-and-worksheets-in-vba-delete-sheets-sans-confirmation-invites-using-vba-in-microsoft-excel [Supprimer les feuilles sans invites de confirmation en utilisant VBA dans Microsoft Excel] | Puisque vous supprimez des feuilles à l’aide de VBA, vous savez ce que vous faites.

Vous voudriez dire à Excel de ne pas afficher cet avertissement et de supprimer la fichue feuille.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Ajouter et enregistrer un nouveau classeur en utilisant VBA dans Microsoft Excel 2016] | Dans ce code, nous avons d’abord créé une référence à un objet de classeur. Et puis nous l’avons initialisé avec un nouvel objet classeur. L’avantage de cette approche est que vous pouvez effectuer facilement des opérations sur ce nouveau classeur. Comme enregistrer, fermer, supprimer, etc `link: / menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [Afficher un message sur La barre d’état Excel VBA *] `| La barre d’état dans Excel peut être utilisée comme moniteur de code. Lorsque votre code VBA est long et que vous effectuez plusieurs tâches à l’aide de VBA, vous désactivez souvent la mise à jour de l’écran pour ne pas voir cet écran scintiller.

lien: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Désactiver les messages d’avertissement à l’aide de VBA dans Microsoft Excel 2016] | * Ce code désactive non seulement VBA alertes mais augmente également l’efficacité temporelle du code. Voyons comment.

Articles populaires:

lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité] | Accélérez votre tâche. Ces 50 raccourcis vous permettront de travailler encore plus rapidement sur Excel.

lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel] | C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher des valeurs à partir de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016] | Comptez les valeurs avec des conditions en utilisant cette fonction étonnante. Vous n’avez pas besoin de filtrer vos données pour compter des valeurs spécifiques.

La fonction Countif est indispensable pour préparer votre tableau de bord.

lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel] | C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.