Code Postal et Ville Automatiquement

emp06bis

XLDnaute Junior
Bonjour, et merci par avance de votre prècieuse aide.
J'ai parcourus les forums mais je n'ai pas réussi à trouver réponse.

Je voudrais, à partir d'une base de données existante, que lorsque je saisi le nom d'une ville dans une colonne, le code postal s'affiche automatiquement sur la même ligne dans la colonne suivante.et évenutellement le contraire, saisie du code et affiche automatique le nom de la ville dans la colonne suivante
Sous forme de menu déroulant cela serait sympa
 

titiborregan5

XLDnaute Accro
Re : Code Postal et Ville Automatiquement

dans un sens c'est faisable, dans l'autre aussi mais les 2 combinés je ne sais pas faire.
Je te donne tout de même ma méthode.
tu fais un recherchev et ca doit marcher. Attention cependant, si tu as 2 villes avec le même code postal, il n'affichera que la 1ere dans la liste.

liste ville : C1:C10
liste CP: D1: D10
en A les villes en B les CP
en B2 tu écris =recherchev(A1;C1: D10;2;faux)
il devrait t'afficher le CP. Pense aux $ pour figer si tu étends...
Pour la liste de choix, sélectionne la cellule, données/validation/autoriser liste/ et tu indiques la plage soit pour les villes C1:C10
 

Guiv

XLDnaute Occasionnel
Re : Code Postal et Ville Automatiquement

Bonjour emp06bis, Tibo, titiborregan5 et les autres,

Si tu as une liste de villes limitée (et sans doublons) dans ta base de données, qlq chose comme ça peut convenir.
Cordialement,
Guiv
 

Pièces jointes

  • Ville_CP.xls
    26.5 KB · Affichages: 4 034

emp06bis

XLDnaute Junior
Re : Code Postal et Ville Automatiquement

Bonjour Guy
Merci pour ton fichier. J'ai mis en application, mais la seule que je n'ai pas réussi à transposer c'est d'avoir lorsque je choisi le code la ville qui s'affiche en même temps et vice et versa, qu'ai oublié. Dans la feuille de destination j'ai bien mis liste et =CP ou ville et dans la feuille données je l'ai recopié tel quelle et vérifié que tout était bien nommé sans doublons. Merci
 

Guiv

XLDnaute Occasionnel
Re : Code Postal et Ville Automatiquement

Bonjour,

As-tu entré les listes de validation?(Données/Validation/Autoriser:Liste/Source "=Ville" ou"=CP")

As-tu mis le code qui va bien?

Sur la feuille "Saisie", clic droit sur l'onglet et "Visualiser le code.
Dans la fenêtre qui s'ouvre, coller ça:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A2:A65536")) Is Nothing And Target.Count = 1 Then
Target.Offset(0, 1) = Application.VLookup(Target.Value, Sheets("Données").Range("A2:B65536"), 2, 0)
End If

If Not Intersect(Target, Range("B2:B65536")) Is Nothing And Target.Count = 1 Then
Target.Offset(0, -1) = Application.VLookup(Target.Value, Sheets("Données").Range("B2:C65536"), 2, 0)
End If


End Sub

Cela dit, j'ai fait ça à la va-vite, et il y a des solutions plus élégantes (sans la 3ème colonne de la feuikke "Données" par exemple. Si j'ai un moment, je me penche sur la question.

Dis si ça marche.

Guiv
 

emp06bis

XLDnaute Junior
Re : Code Postal et Ville Automatiquement

Ok,
1/ Le code n'est pas recopié
2/ Ma saisie du CP est en E7 et pour la ville en G7

Je dois donc, recopier le code d'une part, et d'autre part transformé par rapport au nouvelle cellules d'accueil pour cp et ville ?
 

emp06bis

XLDnaute Junior
Re : Code Postal et Ville Automatiquement

Merci GUIV
Cependant j'aimerais avoir encore un peu d'aide
En effet je ne sais pas comment amener ou plutot corriger cette formule pour que cela soit valide dans une autre colonne et ligne que celle cité, sur une autre feuille merci
 

Guiv

XLDnaute Occasionnel
Re : Code Postal et Ville Automatiquement

Bonjour emp06bis,

Dans le code,
Range("A2:A65536") représente la plage des villes (en fait toute la colonne A ce qui permet de rallonger le tableau ...) et Range("B2:B65536") celle des CP. Tu peux les modifier selon tes besoins.

Target.Offset(0, 1) représente la cellule située sur la même ligne que la cellule qui a été mofifiée (décalage de 0 ligne) et sur la colonne suivante (décalage de +1 colonne vers la droite). Donc ça aussi tu le modifie selon les besoins.

Target.Offset(0,-1) c'est pareil , décalage de 0 ligne et d'1 colonne vers la gauche...

Cordialement,
Guiv
 

Discussions similaires

Réponses
4
Affichages
305
M
Réponses
6
Affichages
403
  • Question
Microsoft 365 VBA
Réponses
7
Affichages
814

Statistiques des forums

Discussions
311 734
Messages
2 082 020
Membres
101 872
dernier inscrit
Colin T