Petit (?) pb de liste déroulante

Fermé
EPO94 Messages postés 2 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 10 mars 2013 - 9 mars 2013 à 11:45
via55 Messages postés 14507 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 31 décembre 2024 - 10 mars 2013 à 19:20
Bonjour,

Je souhaite créer dans une cellule une liste déroulante mais avec une petite subtilité : que la valeur qui va s'inscrire dans la cellule ne soit pas celle issue de la liste mais une valeur différente issue d'une autre colonne que celle qui contient la liste.
Je m'explique : j'ai 3 choix : choix1, choix2 et choix3 et à ces 3 choix correspondent 3 valeurs : 11, 22, 33 (ces éléments sont présent dans une petite base de 2 colonnes par 3 cellules).

Ce que je souhaite faire, c'est dans une cellule d'un tableau de résultats, s'affiche la liste déroulante des choix et lorsque l'on valide un choix (choix2 par exemple) s'affiche non pas "choix2" mais 22 dans ma cellule.

Bien sûr je sais que je peux afficher dans ma liste déroulante directement les valeurs 11, 22 et 33 mais cela ne m'intéresse pas...Je peux également obtenir ce résultat en 2 cellules (une ou je valide le choix et une autre à coté qui va chercher la valeur correspondant à ce choix), mais là je veux tout faire dans une seule cellule.

Je ne sais pas si c'est possible, merci d'avance pour votre aide.

A voir également:

2 réponses

via55 Messages postés 14507 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 31 décembre 2024 2 738
9 mars 2013 à 12:16
Bonjour,

Une possibilité en VBA

ALT F11 pour ouvrir l'éditeur et dans le Worsheet de la feuille entrer le code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "choix 1" Then Target.Value = "11"

If Target.Value = "choix 2" Then Target.Value = "22"

If Target.Value = "choix 3" Then Target.Value = "33"

End Sub

Cdlmnt
0
EPO94 Messages postés 2 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 10 mars 2013
10 mars 2013 à 18:24
Merci pour cette réponse qui cependant est trop fastidieuse pour moi car il faut saisir les choix et les valeurs dans le code or j'ai trop de listes déroulantes différentes à traiter. Je souhaiterai vraiment saisir mes choix et mes valeurs dans des cellules (et ainsi pouvoir facilement les modifier).
Merci d'avance si vous avez d'autres idées.
0
via55 Messages postés 14507 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 31 décembre 2024 2 738
10 mars 2013 à 19:20
Bonjour,

Ok il faut alors proceder par rechercheV (enfin son équivalent en VBA

Le code à mettre dans le worksheet_change

On Error Resume Next
Target.Value = WorksheetFunction.VLookup(Cells(Target.Row, Target.Column), Sheets("XXXX").Range("A1:B3"), 2, False)

Remplacer les XXXX par le nom de la feuille où se trouve le tableau et A1:B3 par les references de la plage de ce tableau

Le on error resume next evite le renvoi d'un message d'erreur lorsque la valeur rentrée n'est plus retrouvée dans la 1ere colonne du tableau

Cdlmnt
0