Liste déroulante

Bonjour,

J'ai créé une liste déroulante. 715 propositions dans la liste.

Quelle est la formule que je pourrais entrer dans validation des données/ liste afin que ma recherche soit facilitée ?

C'est à dire : j'écris le mot "LYON" par exemple et là la liste m'affiche les différentes propositions qui comportent le mot "LYON".

MErci de votre aide.

Bonjour,

Un fichier EXCEL anonymisé permettrait aux intervenants de répondre plus précisément à ta question.

Slts

Je pense que c'est une comboBox qu'il faut utiliser et non pas une listBox. Les combos sont prédictives et réagissent aux flèches bas et haut et aux frappes sur le clavier.

Bonjour,

je ne suis pas sure que le format combobox puisse correspondre à mon fichier.

Je vous transmet un exemple de mon fichier.

C'est un suivi de commande. J'aimerais que mes listes déroulantes s'affichent en colonne Origine et colonne destination.

est ce qu'il existe donc une formule permettant de rechercher facilement dans la liste ?

Je reprend mon exemple d'avant.

si j'écris le mot "LYON" par exemple et là la liste m'affiche les différentes propositions qui comportent le mot "LYON".

Merci beaucoup

8classeur4.xlsx (30.82 Ko)

Bonjour,

Voir si cet essai correspond à ta demande

Attention fonctionne avec une macro donc ne pas oublier de valider les macros à l'ouverture du fichier

17test-forum.xlsm (43.51 Ko)

Slts

bonjour

sans vba rien qu'en nommant la colonne Arret et un point pivot (dept)

cordialement

10olb.xlsx (29.90 Ko)

Bonjour,

je remercie tout le monde pour les différentes propositions apportées.

@boss_68 si je veux adapté ta solution à mon fichier, peux tu m'indiquer sur les macros, ce que je dois changer ?

Car je ne comprends pas tout. J'ai essayé mais je n'y parviens pas.

Merci beaucoup

Bonjour olb

Quel est ton souci pour la mise en place de cette macro

Dim a(), mémo, f
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set f = Sheets("bd") 'onglet BD
  Set zSaisie = Range("c2:D100") ' ("c2:E100") Colonne sur lesquelles vont se situer tes listes déroulantes
  If Not Intersect(zSaisie, Target) Is Nothing And Target.Count = 1 Then
    If mémo <> "" Then If IsError(Application.Match(Range(mémo), a, 0)) Then Range(mémo) = ""
    a = Application.Transpose(f.Range("a2:a" & f.[A65000].End(xlUp).Row)) '("a2:a" départ de l'onglet Saisie
    Me.ComboBox1.List = a
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Target.Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
    mémo = Target.Address
  Else
    Me.ComboBox1.Visible = False
  End If
End Sub
Private Sub ComboBox1_Change()
  If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
    Set d1 = CreateObject("Scripting.Dictionary")
    tmp = UCase(Me.ComboBox1) & "*"
    For Each c In a
      If UCase(c) Like tmp Then d1(c) = ""
    Next c
    Me.ComboBox1.List = d1.keys
    Me.ComboBox1.DropDown
  End If
  ActiveCell.Value = Me.ComboBox1
End Sub
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  ComboBox1.List = Application.Transpose(f.Range("a2:a" & f.[A65000].End(xlUp).Row)) '("a2:a" départ de l'onglet Saisie
  Me.ComboBox1.DropDown
End Sub
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then
    If IsError(Application.Match(ActiveCell, a, 0)) Then ActiveCell = ""
    ActiveCell.Offset(1).Select
  End If
End Sub

Il faut juste créer sur l'onglet saisie un contrôle activeX zone liste déroulante "ComboBox1" en C2 et le tour est joué

Slts

ah super merci beaucoup !!!

Rechercher des sujets similaires à "liste deroulante"