Auto-Complétion liste déroulante

Bonjour,

Je suis occupé de hisser l'école où je bosse dans le 21e siècle... cela passe par une réorganisation des fichiers... je m'attaque à la liste des élèves et à la meilleurs façon pour trier les trier et retrouver des informations.

Je souhaiterai que lorsque je commence à taper des chiffres dans la colonne "CP VILLE" (de la feuille "Liste d'élèves"), excel m'affiche tous les CP Ville correspondant (se base sur N2:N2824 de la feuille "Données"). Idem pour la liste des enseignants.

J'ai cherché sur le net... je galère un peu

Merci d'avance.

Bonjour,

En postant un fichier, vous auriez eu une réponse

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

Ceuzin

Merci... cliquez sur le lien, vous l'aurez :p

Salut,

J'ai testé sur la cellule en jaune ... en mettant un 1 dans la cellule tu verras en appuyant sur la liste déroulante toutes les villes qui commencent par 1 ...

Est-ce ce que tu désires ?

Cordialement,

Bonjour,

Solution avec recherche intuitive type Google:

  • A chaque caractère frappé, la liste des communes apparait au fur et à mesure de la frappe sans être obligé de cliquer sur la flèche.
  • On choisit le nombre d'items affiché dans liste ainsi que la taille de la police
  • En remplaçant UCase(Me.ComboBox1) & "*" par tmp = "*" & UCase(Me.ComboBox1) & "*" , on peut également frapper le nom de la ville au lieu du code postal (en frappant BRU , on obtient Bruxelles)

-Double-clic pour la liste complète des communes

Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([e2:e100], Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(Sheets("données").Range("maliste").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
    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 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
     Me.ComboBox1.List = Filter(a, Me.ComboBox1.Text, True, vbTextCompare)
     Me.ComboBox1.DropDown
  Else
    ActiveCell = Me.ComboBox1
  End If
End Sub

La propriété MatchEntry du combobox doit être sur MatchentryNone

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/CPVillesFilter.xls

Ceuzin

Bonjour le forum,

Ceuzin : c'est bien plus fort que moi !

Bonne journée à tous,

Haaaa, merci xD C'est exactement ce qu'il me fallait Je l'ai adapté à mon fichier original sans soucis ! Je vais pouvoir étendre la technique à d'autres listes déroulantes.

Encore merci ceuzin.

Je viens de remarqué un petit problème...

J'ai dans les Villes, une ville Française (je suis en Belgique), donc, je dois indiquer le pays afin qu'il s'affiche au bon endroit lorsque j'utilise ma liste en Publipostage... pour ce faire, j'ai dans une cellule "CP Ville" le code postal + la ville et à la ligne "France".

Cependant, la macro plante Que faire ?

Rechercher des sujets similaires à "auto completion liste deroulante"