Affecter chaque choix d'une liste déroulante une valeur excel [Fermé]

Signaler
Messages postés
70
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
17 septembre 2014
-
Messages postés
70
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
17 septembre 2014
-
Bonjour a tous,

Petite question à laquelle je ne trouve pas de réponse malgré avoir épluché plusieurs forums.
J'ai créé une liste :
A1 = a
A2 = b
A3 = c
nommé Liste.

J'ai affecté des valeurs :
B1 = 1
B2 = 2
B3 = 3

En C1 je fais une validation de donnée avec "=Liste" et en D1 je fais une recherchev pour qu'il me sorte la valeur correspondant à la lettre choisi en C1.

En fait je souhaiterai que lorsque je choisi dans ma liste déroulante (cellule C1) la valeur "a", qu'il m'affiche toujours en cellule C1 la valeur "1" et pas "a".

J'espère être clair, n'hésitez pas si ce n'est pas le cas.

Merci d'avance.

4 réponses

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
525
Bonjour,

Le plus simple est de redéfinir la plage nommée "Liste"
=Feuil1!$A$1:$B$3

Puis en D1
=RECHERCHEV(C1;Liste;2;FAUX)

A+
Messages postés
70
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
17 septembre 2014

Bonjour,

Merci pour cette réponse rapide, malheureusement la solution que tu proposes me marche pas. En réalité il faudrait que les choix de ma liste renvoie une valeur et non remette le texte de la valeur de la liste déroulante choisi.

Concrètement en choisissant dans ma liste déroulante "a", je veux 1 et pas "a".

Encore merci pour la rapidité

@+
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
525
Désolé, je n'avais pas bien compris ton attente.
La solution proposée par f894009 devrait te donner satisfaction.

A+
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Bonjour a vous deux,

sans cellule D1:

code a mettre dans le vba de la feuille de la liste de validation:

Private Sub Worksheet_Change(ByVal Target As Range)
'traitement erreur
On Error GoTo suite
'test changement valeur C1
If Not Application.Intersect(Target, Range("C1")) Is Nothing And Target.Count = 1 And Target <> "" Then
'desactive evenement excel (probleme de recurcivite)
Application.EnableEvents = False
'recherche valeur equivalente a choix liste
Target = Range("liste").Find(Target, Range("liste").Cells(1, 1)).Offset(, 1)
End If
'traitement erreur
suite:
'active le evenements excel
Application.EnableEvents = True
'annule traitement erreur pour autre code
On Error GoTo 0
End Sub
Messages postés
70
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
17 septembre 2014

Bonjour,

Encore merci pour cette réponse. Je souhaiterai me passer de vba et tout faire en formule. Si je ne trouve pas de solution je laisserai les 2 étapes à savoir mes deux colonnes.
N'existe-t-il pas une formule qui permet d'inscrire dans la cellule une valeur mais quand elle est appelé de renvoyer une autre valeur ?

A plus tard.