Plusieurs listes déroulantes dans une fonction SI

Fermé
Ltantho - 1 avril 2015 à 09:13
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 - 1 avril 2015 à 16:47
Bonjour,

Je souhaiterais créer plusieurs listes déroulantes dans une même fonction SI

Cela correspond à afficher un nom de commune en fonction d'un code postal inscrit.

Par exemple, si je rentre 80110 dans une cellule, j'aimerais obtenir dans la cellule d'à côté une liste déroulante avec tous les noms de communes appartenant à ce code postal ; ensuite si je rentre 80112, je souhaiterais obtenir dans la cellule d'à coté l'unique nom de commune qui appartient à cette commune ; ensuite une autre liste déroulante avec les communes appartenant au code postal 80120, etc...

Quelqu'un serait-il susceptible de m'aider ?

Par avance, merci.

A voir également:

8 réponses

f894009 Messages postés 17209 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 décembre 2024 1 711
1 avril 2015 à 09:21
Bonjour,

un exemple (VBA, pas de formule) a modifier, ici entree du nom de commune:

https://www.cjoint.com/c/EDbjIsRHcvv
0
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
1 avril 2015 à 09:30
0
Ltantho Messages postés 7 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 1 février 2016
1 avril 2015 à 09:34
Bonjour,

Merci pour votre réponse. vous trouverez en pièce jointe l'explication de ma demande.

Par avance, merci.

0
f894009 Messages postés 17209 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 décembre 2024 1 711
1 avril 2015 à 09:49
Re,

Si vous ne voulez pas de programmation VBA, l'exemple de

Boisgontierjacques 1 avril 2015 à 09:30

vous conviendrait si pas plus de 10000 communes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ltantho Messages postés 7 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 1 février 2016
1 avril 2015 à 09:53
J'aime beaucoup l'exemple de Boisgontierjacques.

Comme précisé, dans mon image, j'aurais aimé ajouter une fonction SI avec des listes déroulantes en valeur VRAI et FAUX.
De façon à inscrire au clavier le code postal et que celui-ci corresponde soit à une liste déroulante (dans le cas ou il y a plusieurs communes) soit à une unique commune (appartenant au code postal inscrit)

Excuser-moi, qu'est ce qu'une programmation VBA ?

Par avance, merci.
0
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
Modifié par Boisgontierjacques le 1/04/2015 à 11:15
Choix de la ville si plusieurs villes pour un CP

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVCodepostalvilles.xls

Jacques Boisgontier
0
Ltantho Messages postés 7 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 1 février 2016
Modifié par Ltantho le 1/04/2015 à 11:38
Bonjour,

Merci, votre réponse correspond à mes attentes.

J'ai réussi.

Merci beaucoup.
0
Ltantho Messages postés 7 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 1 février 2016
Modifié par Ltantho le 1/04/2015 à 12:09
Bonjour,

Une autre question s'il vous plaît.

J'aimerais maintenant que le code INSEE, de la commune sélectionnée dans la liste déroulante, apparaisse dans une autre cellule.

Voir la photo jointe.



Par avance, merci.
0
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
Modifié par Boisgontierjacques le 1/04/2015 à 16:48
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" And Target.Count = 1 Then
Application.EnableEvents = False
Target.Offset(0, 1) = Empty
n = Application.CountIf([CP], Target)
Select Case n
Case 1
Target.Offset(0, 1) = [CP].Find(Target, LookAt:=xlWhole).Offset(0, 1)
Target.Offset(0, 2) = [CP].Find(Target, LookAt:=xlWhole).Offset(0, 2)
Case Is > 1
Target.Offset(0, 1).Select
SendKeys "%{down}"
End Select
Application.EnableEvents = True
End If

If Target.Address = "$B$2" And Target.Count = 1 Then
Target.Offset(0, 1) = [ville].Find(Target, LookAt:=xlWhole).Offset(0, 1)
End If
End Sub


http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVCodepostalvilles.xls

Jacques Boisgontier
0