Recherche dans tableau

Bonjour à tous.

J'ai une base de données sous forme de tableau avec une colonne Ville, une autre Code postal. Lorsque dans un autre tableau je rentre un code postal, j'aimerais que la cellule ville se remplisse le nom de la ville correspondant au code postal. Le problème serait simple s'il n'y avait pas plusieurs villes pour un même code postal. Il y aurait-il une astuce pour, lorsque je rentre le code postal, obtenir toutes les villes avec le même code postal afin de choisir celle qu'il me faut ?

Merci pour vos réponses.

Bonjour,

Regarde le FG une solution en cliquant en Col B.

.

Bonsoir mobil

C'est tout à fait cela, en mieux . Ta solution est vraiment superbe et élégante.

Je pensais faire une recherche sur un tableau donc certaines cellules auraient contenue une liste déroulante contenant les villes avec un seul code postal. Je ne sais pas si c'est faisable et je pense que cela aurait été plus lourd.

Comment intègre t-on ton programme si tu me permets de l'utiliser ? Ma science en excel n'est que basique et je n'ai jamais étudié les macros bien que connaissant leur éxistence.

Merci pour ta réponse.

Re,

Franc a écrit :

Comment intègre t-on ton programme

Dans le VBA (Alt+F11) tu copie dans module de feuille (celle ou tu veux saisir)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' modifier ici la plage à ton besoin [B:2B10]
  If Not Intersect([B2:B10], Target) Is Nothing And Target.Count = 1 Then
    UserForm2.Show
  End If
End Sub

Tu transfère l'userforme vers ton fichier tu modifie si besoin le nom de la feuille et la plage

Dim f, dico
Private Sub UserForm_Initialize()
  Set dico = CreateObject("Scripting.Dictionary")
'ici la feuille  
Set f = Sheets("CodesPostaux")
'ici la plage
  Set code = f.Range("A2:B" & f.[A65000].End(xlUp).Row)
  temp = code
  For i = LBound(temp) To UBound(temp, 1)
    clé = CStr(temp(i, 1))
    dico(clé) = IIf(dico.Exists(clé), dico(clé) & "*" & temp(i, 2), temp(i, 2))
  Next i
  Me.ComboBox1.List = dico.keys
End Sub
Private Sub ComboBox1_click()
  Me.ListBox1.List = Split(dico(Me.ComboBox1.Value), "*")
End Sub
Private Sub ListBox1_Click()
  ActiveCell = Me.ComboBox1
  ActiveCell.Offset(, 1) = Me.ListBox1.Column(0)
  Unload Me
End Sub
Franc a écrit :

tu me permets de l'utiliser

Aucun problème, ce n'est pas de moi, ce sont des bribes de code pris de droite et de gauche.

.

Re bonsoir

Je te remercie pour ta gentillesse. Je vais essayer de mettre tout ça en oeuvre.

Amitiés

Bonjour

Désolé de revenir à la charge mais je ne suis pas compris comment intégrer le userform, c'est la première fois que je vois cela.

Bonjour,

Franc a écrit :

Bonjour

Désolé de revenir à la charge mais je ne suis pas compris comment intégrer le userform, c'est la première fois que je vois cela.

Essaie de poster tout ou partie(anonysée) de ton fichier, j'essairai de faire l'adaptation.

Bonsoir

Je te joinds mon fichier, merci pour tout.

Re,

OK

Plus le temps ce soir, demain matin je m'y mets.

.

Re bonsoir

Merci à toi et ne te surmème pas trop. Bonne nuit.

Bonjour à tous, Franc,

Ton fichier en retour, un clic en Col H ouvre l'USF et renseigne les Col H et I celon ton choix.

Vérifie les noms de champs, il y a eu un Pb avec les liaisons, mais l'USF fonctionne.

Bonjour à tous, salut mobil

Je te remercie de ton aide, tout fonctionne parfaitement. J'ai fait un tri pour avoir les codes postaux dans l'ordre. Maintenant je vais essayer de comprendre tout ça, dur dur les pépés à la retraite

Passe une bonne journée.

Amitiés

Rechercher des sujets similaires à "recherche tableau"