Comment remplir une zone de texte en fonction de la sélection dans une liste déroulante sur un UserForm dans Excel ?
Supposons que vous ayez un tableau contenant une colonne Nom et une colonne Numéro de personnel comme illustré dans la capture d'écran ci-dessous. Maintenant, vous devez créer un UserForm intégrant une liste déroulante qui collecte tous les noms et une zone de texte qui affichera le numéro de personnel correspondant lorsque vous sélectionnez un nom dans la liste déroulante. La méthode décrite dans cet article peut vous aider à y parvenir.
Remplir une zone de texte en fonction de la sélection dans une liste déroulante sur un UserForm avec VBA
Veuillez suivre les étapes ci-dessous pour remplir une zone de texte avec la valeur correspondante en fonction de la sélection dans une liste déroulante sur un UserForm.
1. Appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Dans la fenêtre Microsoft Visual Basic for Applications, cliquez sur Insérer > UserForm. Voir la capture d'écran :
3. Ensuite, insérez un contrôle Liste déroulante et un contrôle Zone de texte dans le UserForm créé, comme illustré dans la capture d'écran ci-dessous.
4. Cliquez avec le bouton droit sur un espace vide du UserForm, puis cliquez sur Afficher le code dans le menu contextuel. Voir la capture d'écran :
5. Dans la fenêtre Code du UserForm qui s'ouvre, copiez et collez le code VBA ci-dessous pour remplacer celui d'origine.
Code VBA : Remplir une zone de texte en fonction de la sélection dans une liste déroulante sur un UserForm
Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
Set xRg = Worksheets("Sheet5").Range("A2:B8")
Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub
Remarque : Dans le code, A2:B2 est la plage contenant les valeurs que vous souhaitez remplir séparément dans la liste déroulante et la zone de texte du UserForm. Et Sheet5 est le nom de la feuille de calcul contenant la plage de données. Veuillez les modifier selon vos besoins.
6. Appuyez sur les touches Alt + Q pour quitter la fenêtre Microsoft Visual Basic for Applications.
7. Cliquez sur Développeur > Insérer > Bouton de commande (contrôle ActiveX) pour insérer un bouton de commande dans la feuille de calcul.
8. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Afficher le code dans le menu contextuel. Ensuite, copiez et collez le code VBA dans la fenêtre de code.
Code VBA : Afficher le UserForm
Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
UserForm1.Show
End Sub
9. Désactivez le Mode Création dans le classeur.
Cliquez sur le bouton de commande pour ouvrir le UserForm spécifié. Vous pouvez alors voir que tous les noms sont collectés dans la liste déroulante. Lorsque vous sélectionnez un nom dans la liste déroulante, le numéro de personnel correspondant sera automatiquement rempli dans la zone de texte, comme illustré dans la capture d'écran ci-dessous.
Articles connexes :
- Comment remplir une liste déroulante avec des données spécifiées lors de l'ouverture du Classeur ?
- Comment remplir automatiquement d'autres cellules lors de la sélection de valeurs dans une liste déroulante Excel ?
- Comment remplir automatiquement d'autres cellules lors de la sélection de valeurs dans une liste déroulante Excel ?
- Comment importer les résultats de recherche Google dans une feuille de calcul Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !