Liste déroulante intuitive (auto-complétion)

Résolu/Fermé
CidjyStar Messages postés 9 Date d'inscription mercredi 18 juillet 2018 Statut Membre Dernière intervention 25 juillet 2018 - 18 juil. 2018 à 23:36
CidjyStar Messages postés 9 Date d'inscription mercredi 18 juillet 2018 Statut Membre Dernière intervention 25 juillet 2018 - 25 juil. 2018 à 03:54
Bonjour la communauté CCM,

J'ai une liste de noms et de prénoms (sur 1 colonne, A2:A362) sur une 2 ème feuille et je souhaiterais que lorsque je tape des lettres dans une cellule (qui se trouve sur la 1 ère feuille, en L2) les noms ou prénoms qui correspondent aux lettres tapées soient proposés.

Je sais qu'il faut utilisé une macro-commande ou combobox mais malgré avoir suivi plusieurs tutos et essayer de comprendre via les réponses des autres sur plusieurs sites (3 jours), j'ai finalement décidé d'exposé mon incompréhension en ligne afin d'avoir de l'aide, je souhaiterais que l'on m'explique pas à pas ce qu'il faut faire pour que je puisse comprendre la logique.

Merci d'avance à ceux qui prendront de leur temps pour m'aider.

3 réponses

Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
20 juil. 2018 à 07:51
Bonjour,

Une VRAIE saisie intuitive (la liste se réduit au fur et à mesure de la frappe des caractères)

http://boisgontierjacques.free.fr/pages_site/listes_cascade.htm#Simul_DV


Boisgontier
3
CidjyStar Messages postés 9 Date d'inscription mercredi 18 juillet 2018 Statut Membre Dernière intervention 25 juillet 2018
20 juil. 2018 à 20:42
Bonjour,

Merci d'avoir pris de votre temps pour me répondre, lors de mes précédentes recherches sur le net je suis souvent tombé sur vos propositions, vos réponses et je sais que ce que vos solutions fonctionnent, cependant je n'arrive pas à mettre en forme les codes et solutions que vous proposé.

Dans le code suivant, dois-je remplacer [A2:A16] par [Feuille2.A2:A362] ?

Et ma cellule en L2 correspond à quoi dans ce code ?

J'ai vraiment du mal à comprendre (j'ai pourtant compris certains points), lorsque j'aurais du temps je vais m'y mettre franchement. Je reviens la semaine prochaine vous dire ce qu'il en résulte, je vais voir si je peux me dégagé une demi-journée ce week-end.

Merci de bien vouloir m'aidé.

Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A2:A16], Target) Is Nothing And Target.Count = 1 Then
a = Sheets("bd").Range("liste").Value
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
'If Target <> "" Then SendKeys "{esc}"
'Me.ComboBox1.DropDown ' ouverture automatique au clic dans la cellule (optionel)
Else
Me.ComboBox1.Visible = False
End If
End Sub

Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" 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)
Me.ComboBox1.List = a
Me.ComboBox1.Activate
Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub
0
CidjyStar Messages postés 9 Date d'inscription mercredi 18 juillet 2018 Statut Membre Dernière intervention 25 juillet 2018
25 juil. 2018 à 03:54
Bonjour Boisgontier Jacques,

Je mets un lien pour vous aider à visualiser, pour indication la cellule L2 qui doit contenir la liste avec autocomplétion qui se trouve sur la feuille Calcul et la feuille Liste des agents qui contient la plage de données (A2:A362).

https://www.cjoint.com/c/HGzbRucdzox

Si il vous faut plus de détails, dîtes le moi j'en rajouterais selon ce que vous me demanderais.

Merci.
0