Note: The other languages of the website are Google-translated. Back to English

 Comment créer une liste déroulante mais afficher des valeurs différentes dans Excel?

Dans la feuille de calcul Excel, nous pouvons créer rapidement une liste déroulante avec la fonctionnalité de validation des données, mais avez-vous déjà essayé d'afficher une valeur différente lorsque vous cliquez sur la liste déroulante? Par exemple, j'ai les deux données de colonne suivantes dans la colonne A et la colonne B, maintenant, je dois créer une liste déroulante avec les valeurs de la colonne Nom, mais, lorsque je sélectionne le nom dans la liste déroulante créée, le correspondant La valeur de la colonne Nombre est affichée comme la capture d'écran suivante. Cet article présentera les détails pour résoudre cette tâche.

doc déroulant différentes valeurs 1

Créer une liste déroulante mais afficher une valeur différente dans la cellule de la liste déroulante


Créer une liste déroulante mais afficher une valeur différente dans la cellule de la liste déroulante

Pour terminer cette tâche, procédez comme suit étape par étape:

1. Créez un nom de plage pour les valeurs de cellule que vous souhaitez utiliser dans la liste déroulante, dans cet exemple, je vais entrer le nom dans la liste déroulante Zone Nom, puis appuyez sur Entrer clé, voir capture d'écran:

doc déroulant différentes valeurs 2

2. Sélectionnez ensuite les cellules dans lesquelles vous souhaitez insérer la liste déroulante, puis cliquez sur Données > Validation des données > Validation des données, voir capture d'écran:

doc déroulant différentes valeurs 3

3. Dans le Validation des données boîte de dialogue, sous la Paramètres onglet, choisissez Liste du Autoriser dérouler, puis cliquez sur doc déroulant différentes valeurs 5 pour sélectionner la liste Nom que vous souhaitez utiliser comme valeurs déroulantes dans le Source zone de texte. Voir la capture d'écran:

doc déroulant différentes valeurs 4

4. Après avoir inséré la liste déroulante, cliquez avec le bouton droit de la souris sur l'onglet de la feuille active et sélectionnez Voir le code dans le menu contextuel, et dans le Microsoft Visual Basic pour les applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: affichez une valeur différente de la liste déroulante:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    selectedNa = Target.Value
    If Target.Column = 5 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If
    End If
End Sub

doc déroulant différentes valeurs 6

Notes: Dans le code ci-dessus, le numéro 5 dans les Si Target.Column = 5 Then script est le numéro de colonne que votre liste déroulante a localisé,, le "déroulante" dans ce selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False) code est le nom de plage que vous avez créé à l'étape 1. Vous pouvez les modifier selon vos besoins.

5. Ensuite, enregistrez et fermez ce code, maintenant, lorsque vous sélectionnez un élément dans la liste déroulante, une valeur relative différente est affichée dans la même cellule, voir capture d'écran:

doc déroulant différentes valeurs 7


Démo: créer une liste déroulante mais afficher des valeurs différentes dans Excel

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!

 


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition 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é de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine

 

Commentaires (40)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Cela peut-il être fait sur des feuilles différentes? Je veux dire, sur feuille1 la liste déroulante et sur feuille2 la plage. Comment dois-je coder cela? Merci d'avance. Tina.
Ce commentaire a été minimisé par le modérateur sur le site
Que se passe-t-il si je veux faire plusieurs listes déroulantes qui renvoient des valeurs différentes sur la même feuille de calcul ? Pouvez-vous me montrer un exemple de codage pour deux ou plus ?
Ce commentaire a été minimisé par le modérateur sur le site
Lee Ann

Si vous copiez et collez simplement le code de If à EndIf et modifiez la colonne # et Table, cela devrait fonctionner:


Sub Worksheet_Change (ByVal Target As Range)
sélectionnéNa = Cible.Valeur
Si Target.Column = 5 Then
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False)
Si non IsError(selectedNum) Alors
Target.Value = selectedNum
Si fin
Si fin
Si Target.Column = 9 Then
selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown1"), 2, False)
Si non IsError(selectedNum) Alors
Target.Value = selectedNum
Si fin
Si fin
End Sub

Je ne dis pas que c'est la bonne méthode, mais cela a fonctionné sur ma version de test. J'utilise Excel 2013
Ce commentaire a été minimisé par le modérateur sur le site
Je viens de l'essayer. Et ça a marché !! Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, aidez-moi, ça ne marche pas, pouvez-vous coller ici tout le code pour 2 colonnes ?
Ce commentaire a été minimisé par le modérateur sur le site
Rien de plus frustrant que de taper une question détaillée pour la faire exploser. Si vous tapez le mauvais code à 6 chiffres pour vérifier votre humain, cela efface le message posté. Vous voudrez peut-être résoudre ce problème. Maintenant, mon commentaire est le suivant : j'ai essayé de faire exactement la même chose que vous avez montrée dans la vidéo et les instructions écrites et tout ce que j'obtiens, c'est que lorsque je sélectionne un nom dans la liste, c'est le nom et non le numéro. De plus, comment cela fonctionne-t-il même puisque la validation des données devrait limiter les choix à ce qui se trouve dans la liste uniquement. Comment cela trompe-t-il le système ? Dans le passé, j'ai toujours dû attribuer un code vba à un bouton ou à un raccourci, comment ce code est-il activé ? Comment testez-vous pour vous assurer que cela fonctionne?
Ce commentaire a été minimisé par le modérateur sur le site
Comment fonctionne la formule lorsque vous souhaitez ajouter les données sur une feuille séparée dans le classeur ? Je veux cacher les données.
Ce commentaire a été minimisé par le modérateur sur le site
Changez ici mon frère !
selectedNum = Application.VLookup(selectedNa, Worksheets("YourSheetName").Range("dropdown"), 2, False)
Ce commentaire a été minimisé par le modérateur sur le site
"YourSheetName" fait référence à la feuille qui contient la plage de données ou la feuille où je veux utiliser la liste dropdwon ?
Ce commentaire a été minimisé par le modérateur sur le site
Comment fonctionne la formule lorsque vous souhaitez répertorier les données sur une feuille/un onglet séparé dans le classeur ?
Ce commentaire a été minimisé par le modérateur sur le site
cela ne fonctionne pas dans les versions actuelles d'Excel - obsolète. La validation des données, puis la liste n'apparaît plus dans vba car un objet Excel a déjà essayé plusieurs fois et il ne s'affiche pas.
Ce commentaire a été minimisé par le modérateur sur le site
Dans cet exemple, que se passe-t-il si vous voulez qu'il regarde une valeur dans chacune des cellules en 5, mais place la valeur dans la cellule adjacente en 6
Ce commentaire a été minimisé par le modérateur sur le site
Comment le code doit-il changer si je voulais créer une référence/un lien dans E1 vers la source de la liste déroulante en fonction de la valeur sélectionnée ?
L'avantage serait qu'en cas de modification de la source déroulante (par exemple "Henrik" => "Hendrik", la modification serait automatiquement reflétée dans E1.
Ce commentaire a été minimisé par le modérateur sur le site
Quelqu'un sait comment faire pour que cela fonctionne dans Google Sheets ?
Ce commentaire a été minimisé par le modérateur sur le site
Je veux sélectionner plusieurs options dans la liste déroulante.
résultat comme ceci : AA1001, BB1002
Est-il possible?
Ce commentaire a été minimisé par le modérateur sur le site
Avez-vous trouvé une solution?
Ce commentaire a été minimisé par le modérateur sur le site
Si los datos de la lista están en otra hoja, cuál sería el código ? Gracias.
Ce commentaire a été minimisé par le modérateur sur le site
cómo buscar un valor hacia la izquierda
Ce commentaire a été minimisé par le modérateur sur le site
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
sélectionnéNa = Cible.Valeur
Si Target.Column = 5 Then

Sheets("Nombre de la hoja en donde esta la lista").Activer
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False)
Sheets("Nombre de la hoja en donde estas trabajando").Activer
Si non IsError(selectedNum) Alors
Target.Value = selectedNum
Si fin
Si fin
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Quelqu'un sait comment rechercher la valeur de droite à gauche
Ce commentaire a été minimisé par le modérateur sur le site
J'ai besoin d'utiliser la même liste déroulante dans plusieurs colonnes, quel serait le code ?
Ce commentaire a été minimisé par le modérateur sur le site
Hello!
C'est vraiment utile ! Merci!
Je cours dans la situation où la cellule ne se met pas à jour automatiquement ou lors de l'utilisation de la fonction d'actualisation. Je dois cliquer dans une autre cellule, puis cliquer sur la cellule en cours pour qu'elle affiche la valeur.
Je travaille actuellement avec Office Standard 2019. Quelqu'un sait-il si ce problème est lié à la version sur Excel que j'utilise ?
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
Le code fonctionnait bien si nous définissions la liste et créions la liste déroulante dans la même feuille.
Mais comment arriver à définir la liste des valeurs et des codes dans une feuille et la liste déroulante créée dans une autre feuille ?
Ce même code ne fonctionne pas car il affiche une erreur dans cette ligne ("selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)").
De plus, j'ai une exigence comme, si j'ai plusieurs listes définies dans une feuille avec ID et noms et plusieurs listes déroulantes dans une autre feuille où une valeur déroulante dépend de la valeur sélectionnée dans une autre liste déroulante.

J'espère que vous avez compris ma requête.

Aidez-moi s'il vous plaît à résoudre ce problème.
Ce commentaire a été minimisé par le modérateur sur le site
Cela m'a énormément aidé, merci. Étant donné que ma table était sur une feuille différente de celle de ma zone de liste, j'ai ajouté quelques lignes de code pour accomplir cela et aussi pour empêcher l'écran de clignoter.

Application.ScreenUpdating = Faux
Feuilles("FeuilleAvecTableOnIt").Activer

Sheets("SheetWithDropDownListOnIt").Activer
Application.ScreenUpdating = True
Ce commentaire a été minimisé par le modérateur sur le site
où avez-vous exactement ajouté ces codes ?
Ce commentaire a été minimisé par le modérateur sur le site
J'obtiens une erreur de compilation : erreur de syntaxe sur la ligne "If Trarget.Column = 6 Then" lorsque j'essaie d'utiliser le code ? Une idée de pourquoi?
Ce commentaire a été minimisé par le modérateur sur le site
Cela fonctionne, mais lorsque vous quittez un fichier et que vous l'ouvrez à nouveau, il ne fonctionne pas... il ne peut pas être enregistré en tant que .xls uniquement en tant que .xlsm. Existe-t-il une solution pour cela ? Merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Marko,Après avoir copié et collé le code dans votre classeur, lorsque vous enregistrez le fichier, vous devez l'enregistrer au format de classeur Excel compatible avec les macros, veuillez essayer, merci !
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés