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

Résolu
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

Boisgontierjacques Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   64
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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
thev Messages postés 1985 Date d'inscription   Statut Membre Dernière intervention   713
 
Bonjour,

ci-jointe une proposition via :
1- l'utilisation d'une Combobox nommée "Choix_Nom" , rattachée à la 1ère feuille
2- un code VBA rattaché à la 1ère feuille

Ne connaissant pas votre niveau de programmation, vous devrez être plus précis dans vos demandes d'explication.

https://cjoint.com/c/HGtkEzLUHDI
0
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci pour votre réponse et votre aide.
J'ai un soucis car lorsque je clic sur la combobox, j'arrive à insérer des lettres mais ça s'arrête là, j'essaie de comprendre mais je peine sérieusement.
Je vais me penché plus sérieusement sur le fichier que vous m'avez mis en pièce-jointe un peu plus tard et je reviendrais dans 1 ou 2 jours vous dire ce qu'il en résulte (actuellement je n'ai pas le temps, de-plus je suis sous Open Office Calc, je switch selon le bureau où l'on m'affecte), j'essaie d'adapté les solutions que je trouve sur internet ou que l'on me propose mais ce n'est pas évident pour moi, j'ai trop de lacunes et il y a beaucoup de manips que je n'arrive pas à effectué.

Merci :)
0
thev Messages postés 1985 Date d'inscription   Statut Membre Dernière intervention   713 > CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Normalement :

1- Vous tapez vos lettres en cellule L2, puis Entrée
2- La combobox apparait alors et affiche la liste des noms correspondant à vos lettres
3- Sélectionner le nom désiré
4- Cliquer sur le nom sélectionné, la combobox disparait et le nom sélectionné apparait dans la cellule L2
0
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé sur Calc ça ne marche pas (la combobox semble ne pas être active, lorsque je sélectionne la cellule L2 il y a juste les petits carrés pour redimensionné la taille de la combobox), j'ai pas encore pu testé sur Excel car pour le moment je suis sur Calc, mais merci de l'aide.
0
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous les deux

Tu as aussi une solution sans macro
https://www.cjoint.com/c/HGtmTviMEkB

Cdlmnt
0
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci de me répondre et de m'aidé.
Je n'ai pas encore testé ta méthode car je n'ai pas trop de temps actuellement, j'ai jeté un rapide coup d’œil et j'avais déjà une liste déroulante avec la fonction DECALER, cependant je crois que ta méthode est plus complexe et complète que celle que j'ai, donc je vais testé tout cela un peu plus tard et je reviendrais dans quelques jours te dire ce qu'il en advient.

Merci :)
0
CidjyStar Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

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