XL 2019 Besoin de votre aide svp ... Excel ville code postal

isabelle646464

XLDnaute Nouveau
Bonjour a tous,

Je cherche a créer une feuille avec les coordonnées client, le code postal et la ville.
J'aimerais que lorsque le code postal est saisi, la case ville soit sous forme de liste déroulante et propose les différentes villes correspondantes au code postal.
J'ai vu beaucoup de tuto, lu des discussions sur des forums...mais je suis toujours bloquée.
Le fichier ci-joint regroupe en seconde feuille la base des codes postaux de l'INSEE, la première feuille étant la feuille ou je souhaite saisir le CP et voir la liste déroulante de ville s'afficher.
Quelqu'un pourrait-il m'expliquer simplement les étapes pour réaliser ça svp ?
Ou me mettre un exemple sur le fichier ci-joint ?
Merci d'avance pour vos réponses ! :)
Isabelle
 

Pièces jointes

  • test.xlsx
    763.1 KB · Affichages: 36

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Isabelle,
En PJ un essai qui marche.
Librement inspiré du post paru sur XLD :
Vous avez un pdf qui explique la marche à suivre écrite par Modeste.
 

Pièces jointes

  • test (1).xlsx
    759.8 KB · Affichages: 52

job75

XLDnaute Barbatruc
Bonsoir isabelle646464, sylvanu,

Pas compris pourquoi sylvanu donne cet exemple car il n'y a pas de macro...

Voyez le fichier .xlsm joint et cette macro dans le code de la feuille "bddclient" :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:C]) Is Nothing Then Exit Sub
[D:D].Validation.Delete 'RAZ
[G:G].ClearContents 'RAZ
If Target.Count > 1 Or Not (Target(1) Like "####" Or Target(1) Like "#####") Then Exit Sub
Dim code&, tablo, lig&, i&
code = Target
tablo = Sheets("codepostal").[A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide
lig = 1
Application.EnableEvents = False 'désactive les évènements
For i = 2 To UBound(tablo)
    If tablo(i, 2) = code Then Cells(lig, "G") = tablo(i, 1): lig = lig + 1
Next
Application.EnableEvents = True 'réactive les évènements
If lig = 1 Then Exit Sub
With [G1].Resize(lig - 1)
    Target(1, 2).Validation.Add xlValidateList, Formula1:="=" & .Address
    .Sort .Cells(1), xlAscending, Header:=xlNo 'tri
End With
Target(1, 2).Select
CreateObject("wscript.shell").SendKeys "%{DOWN}" 'déroule la liste
End Sub
Elle se déclenche quand on renseigne le code postal en colonne C

PS : il y a des doublons dans la liste des villes, ce n'est pas normal...

A+
 

Pièces jointes

  • test(1).xlsm
    772.2 KB · Affichages: 29

sylvanu

XLDnaute Barbatruc
Supporter XLD
La demande est qu'avec le code postal, une liste déroulante permette d' avoir le choix entre les villes/villages ayant le même code postal.
Vous ne pouvez pas le faire en VBA, seul l'utilisateur peut faire le choix.
Ex : le code postal 011090 correspond à 8 villes :
1.jpg

Ensuite combien de lignes y aura t-il dans bddclient. Seule Isabelle peut répondre.
 

GALOUGALOU

XLDnaute Accro
bonsoir isabelle 646464, bonsoir sylvanu, bonsoir job75, bonsoir le fil
et oui ce que je propose ne correspond pas à la demande, mais j'avais réfléchi il y a bien longtemps maintenant, à une problématique identique, aussi j'avais envie de vous la proposer (richesse de solution ne nuira pas à isabelle646464).

dans la feuille bddclient, un double-clic sur une cellule colonne C ouvre une boite de dialogue.
la saisie partielle ou complète du code postal ou de la ville, fait apparaitre la totalité des résultats avec des occurrences identiques.
sélectionner avec la souris le résultat souhaité, et valider pour compléter la feuille. (faite un essai avec le mot Provence)
cp.gif


cordialement
galougalou
 

Pièces jointes

  • Copie de test.xlsm
    755.7 KB · Affichages: 55

casou

XLDnaute Nouveau
Bonjour Isabelle,
En PJ un essai qui marche.
Librement inspiré du post paru sur XLD :
Vous avez un pdf qui explique la marche à suivre écrite par Modeste.
Hello, merci beaucoup de partager vos connaissances ici !
Y a-t-il moyen d'afficher les villes par ordre alphabetique dans cette liste déroulante svp?
/
 

Discussions similaires

Réponses
3
Affichages
243