Codes postaux, départements, régions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pierre-Hugues

XLDnaute Nouveau
Bonjour à tous,

je cherche (en vain ;-D) un automatisme qui pourrait me permettre, lorsque je renseigne une cellule "Code postal", d'obtenir instantanément dans deux autres cellules de la même ligne :
- d'une part le "Département" (sous forme : "51 - Marne"),
- d'autre part la "Région" (sous forme : "Champagne-Ardenne").

Je pense que ce n'est pas bien dur... Mais mes compétences sont restreintes. Avec la formule "If", c'est indigeste pour 95 départements. Sans doute avec la fonction "RechercheV", mais je n'y arrive pas... Il me faudrait un petit mode opératoire...

Quelqu'un peut-il m'aider, svp ?

Merci beaucoup d'avance.

Pierre-Hugues.
 
Re : Codes postaux, départements, régions

Bonjour Pierre-Hugues, le forum,

Bienvenue sur le forum,

Dans une feuille : colonne A - les numéros, colonne B - les départements et colonne C - les régions

Tu selectionnes de A1 à C100 et dans la barre de noms à gauche de la barre de formules, tu nommes cette zone Base, par exemple.

Dans une autre feuille : en A1, toujours par exemple, tu saisis ton numéro et en B1, la formule suivante : = RECHERCHEV(A1;base;2;0) où 2 est le numéro de colonne de recherche dans ton autre feuille et le 0 pour faire une recherche exacte.
Et en colonne C, la même formule en remplacant le 2 par le 3.

Tu nous dis.

Bonne journée.

Jean-Pierre
 
Re : Codes postaux, départements, régions

Bonjour
Bonjour Jean Pierre

Ci dessous une macro évènementielle
Code:
Option Explicit
Dim flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dl1 As Long
Dim data1 As String
Dim cellule As Range
If flag = True Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub


If Target.Column <> 4 Then Exit Sub
data1 = Left(Target.Value, 2)
With Sheets(ActiveSheet.Name)
dl1 = .Range("d65536").End(xlUp).Row
flag = True
For Each cellule In .Range(.Cells(2, Target.Column), .Cells(dl1, Target.Column))
    If cellule.Row <> Target.Row Then
        If data1 = CStr(Left(cellule.Value, 2)) Then
            Target.Offset(0, 1).Value = cellule.Offset(0, 1).Value
            Target.Offset(0, 2).Value = cellule.Offset(0, 2).Value
            Exit For
        End If
     End If
Next cellule
flag = False
End With
End Sub
qui recherche dans la colonne le département quand elle trouve le code recopie les deux colonnes adjacentes.

A tester

JP
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour