Associer une ville à un code postal

marieRH Messages postés 1 Statut Membre -  
anthonyc12 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je fais une base de données sur excel avec des coordonnées clients.
J'aimerais qu'en tapant un code postal, la ville s'affiche. J'ai utilisé une RECHERCHEV mais le problème est que certaines villes ont le même code postal. Comment pourrais-je intégrer une liste qui me permettrait de choisir entre les différentes villes que la recherchev a trouvé?
Merci d'avance !

5 réponses

  1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Il faut construire une liste des communes qui ont le même code postal
    (les codes postaux doivent être triés dans l'ordre croissant)
    Pour trouver le premier utiliser =EQUIV( C1;A10:A37000;0)

    La cellule C1 contient le code postal recherché,
    La cellule C1 peut-être une liste déroulante
    A10:A37000 la colonne des codes postaux
    Type 0 pour avoir la valeur correspondante exactement

    Vous devez compter le nombre de code C1 identique dans la colonne A
    Equiv vous donne le numéro de ligne du premier code correspondant par rapport à votre point de départ A10 si le résultat est 5 l'information est en ligne 15

    =ADRESSE(LIGNE()+EQUIV("oui";B7:B21;0);2;3;1;"BASE_CODES")

    Donc dans votre formule pour le 2ème code ligne() va incrémenter l'adresse
    de +1
    Après ligne() il faudra mettre un + ou - pour régler le point de départ de la formule
    suivant le numéro de ligne ou se trouve votre formule pour faire coïncider les numéro des lignes
    le numéro de la colonne contenant les communes est 2 dans ma formule
    cette formule sera tirées sur une quinzaine de lignes pour avoir la liste des codes postaux identiques cela vous donnera la base de la liste déroulante des communes

    0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    un petit joujou ici:
    https://www.cjoint.com/c/DDkmsQvxjbd

    crdlmnt
    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Bonjour Vaucluse

      Très intéressant, mais si je tape 10140 il y a 22 communes et l'affichage est de 13 donc il y a une modification à faire.
      Je me suis moi même fait avoir en prévoyant 15 lignes et encore je n'ai pas tout contrôlé
      je viens de regarder il faut 46 lignes pour 51300
      0
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Exact, merci de l'info, je ne croyais pas qu'il y en avait tant!!
      mais il suffit alors de supprimer la formule en H2 qui n'est pas que pour faire joli, ou de la remplacer par:
      =SI(F4="";"";NB.SI(DATA!B:B;F4)&SI(NB.SI(DATA!B:B;F4)>1;" villes trouvées";" ville trouvée"))

      et de tirer la formule en dessous jusqu'à la ligne 60 ça devrait suffire....!

      crdlmnrt
      0
    3. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Bonjour Vaucluse

      J'ai ajouté un contrôle pour que les cellules restent vides quand la liste est plus courte

      =SI(LIGNE()-3<=NB.SI(DATA!B:B;$F$4);SI(OU($F$4="";NB.SI(DATA!H:H;$F$4)<=LIGNE()-4);"";INDEX(DATA!G:G;EQUIV($F$4*1;DATA!H:H;0)+LIGNE()-4));"")

      Merci pour le fichier, j'aime bien la présentation, c'est top

      Bonne journée
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Un exemple avec VBA
    https://www.cjoint.com/?3Dkm7Rru55y

    Un exemple par formule avec plusieurs méthodes (vert: débutant avec colonne intermédiaire; bleue avec matricielle avec formule de Jacques Boisgontier)
    https://www.cjoint.com/?3Dkndqq2CVz

    dans les 2 propositions, il n'est pas nécessaire de trier les codes dans l'ordre crossant -cas classique des carnets d'adresses
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. anthonyc12 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
     
    Je faisais face au même problème et après quelques essais je me retrouve avec cette façon possible, essayer et laissez-moi savoir si vous rencontrez un problème nouveau, et pour base de données des codes postaux, vous pouvez visiter http://www.lecodepostal.fr/ qu'ils ont données géantes de codes postaux. Santé

    =INDEX($I$2:$I$9000,MATCH(1,($H$2:$H$9=E11)*($J$2:$J$9<=SUBSTITUTE(B2,LEFT(B2,FIND("
    ",B2)),""))*($K$2:$K$9>=--LEFT(B2,FIND(" ",B2)-1)),0))

    entrée avec ctrl + shift et entrer

    s'assurer qu'il n'y a pas d'espaces cachés dans le tableau

    -
    Cordialement,

    Anthony Cole
    0