A voir également:
- Vba excel code postal ville
- Code ascii - Guide
- Code postal - Télécharger - Vie quotidienne
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Code puk bloqué - Guide
5 réponses
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
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
Bonjour
L'explication étant complexe un exemple sera plus parlant
https://www.cjoint.com/?3DkmcW90J5S
L'explication étant complexe un exemple sera plus parlant
https://www.cjoint.com/?3DkmcW90J5S
Bonjour
un petit joujou ici:
https://www.cjoint.com/c/DDkmsQvxjbd
crdlmnt
un petit joujou ici:
https://www.cjoint.com/c/DDkmsQvxjbd
crdlmnt
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
=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