XL 2016 RechercheV avec combobox

Mimi

XLDnaute Occasionnel
Bonjour à Tous,
Voilà je voudrais savoir comment faire une rechercheV avec les combobox.
Le premier sert à indiquer le département qui sont dans la base Auvergne,
résultat dans la cellule D3.
Le deuxième sert à rechercher la ville, par exemple en tapant les premières lettres,
résultat dans la cellule D7.
Ensuite en rapport avec la ville inscrite en D7, il faudrait pouvoir remplir les cellules D12, G12 et D15 toujours en rapport avec
le nom de la ville en D7.
D'avance je vous remercie
Mimi
 

Pièces jointes

  • RechercheV.xlsm
    70.3 KB · Affichages: 17

danielco

XLDnaute Accro
Bonjour,

Mets ce code dans le module de la feuille :

VB:
Private Sub ComboBox1_Change()
  Dim C As Range
  Me.ComboBox2.Clear
  With Sheets("Auvergne")
    For Each C In .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
      If C.Value = Me.ComboBox1.Value Then
        Me.ComboBox2.AddItem C.Offset(, 1).Value
      End If
    Next C
  End With
End Sub

Private Sub ComboBox2_Change()
  Dim C As Range
  With Sheets("Auvergne")
    For Each C In .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
      If C.Value = [D3] And C.Offset(, 1).Value = [D7] Then
        [D12] = C.Offset(, 2).Value
        [G12] = C.Offset(, 3).Value
        [D15] = C.Offset(, 4).Value
      End If
    Next C
  End With
End Sub

Cordialement.

Daniel
 

laurent3372

XLDnaute Impliqué
Supporter XLD
Voici ma solution, avec des tableaux structurés dans la feuille Auvergne
VB:
Private Sub ComboBox1_Change()
    Dim rng As Range
    Set rng = Feuil1.Range(Replace(ComboBox1, "-", "_"))
    rng.Name = "nomsVilles"
    ComboBox2.ListFillRange = rng.Name
End Sub

Private Sub ComboBox2_Change()
    Dim i As Long, rng As Range
    i = ComboBox2.ListIndex
    Set rng = Feuil1.Range(Replace(ComboBox1, "-", "_"))
    If i >= 0 Then
        [D12].Value = rng.Cells(i + 1, 2).Value
        [G12].Value = rng.Cells(i + 1, 3).Value
        [D15].Value = rng.Cells(i + 1, 4).Value
    End If
End Sub
Cordialement,
--
LR
 

Pièces jointes

  • RechercheV (1).xlsm
    82.8 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonjour.
Juste pour dire que le sens du libellé de la discussion m'apparait en soit comme une aberration, dans la mesure où une ComboBox est déjà équipée d'un dispositif de recherche dans la liste qui lui a été attribuée, et qu'il suffit donc que celle ci soit en relation avec la source (de façon pas forcément directe), pour qu'il soit inutile de faire de recherche dans celle-ci si l'on veille à ce quelle soit directement définie en fonction de sa propriété ListIndex.
 

Dranreb

XLDnaute Barbatruc
Cette ressource en dit plus d'une façon générale pour des données où tout est dans un seul tableau et pour des ComboBox dans un UserForm …
Dans votre exemple, si le choix en 1er du département est obligatoire, le principe pourrait être mis en pratique en mettant les tableaux des départements dans une Collection. Un membre d'une Collection peut en effet être accédé par sa position, qu'un CBxDépartmt.ListIndex + 1 donnerait.
 

Dranreb

XLDnaute Barbatruc
Si vous tenez à des tableaux séparés pour les départements, la sélection du bon tableau pourrait se faire comme j'ai dit, et ensuite il serait possible d'utiliser un ComboBoxLiées pour pour toutes les infos du tableau sélectionné, si on veut pouvoir chercher d'après d'autres infos que la ville. Si c'est toujours la ville, on pourait se contenter d'affecter au CBxVille.List la 1ère colonne du tableau extrait de la Collection lors du CBxDépartmt_Change.
 

Discussions similaires

Réponses
4
Affichages
239
Réponses
7
Affichages
391

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon