liste en cascade vba

  • Initiateur de la discussion Initiateur de la discussion mmcg
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mmcg

XLDnaute Nouveau
bonjour, je construis un programme et j'ai besoin d'un petit coup de main😛

dans une combobox j'aimerai avoir une liste déroulante qui s'ouvre toute seul en fonction du résultat proposé.

explication:

j'ai une liste de nom (environ 30'000) dans la colonne A de la feuill1.
avec une combobox qui se trouve dans une userform, j'aimerai que quand je rentre la première lettre d'un nom il m'affiche tout les noms correspondants et plus je rentre de lettres plus la liste des noms diminuent.

exemple:
dans ma combobox je tappe "M" et il m'affiche: Marie, Manon,Marc, Médor, etc...
Puis je continue, dans la même combo "Ma" et il m'affiche plus que: Marie, Manon, Marc
etc..

Merci de votre aide😕
 
Re : liste en cascade vba

Salut mmcg,

Pour ce que tu souhaites avoir, il faut remplir ta combobox
Code:
Option Explicit
Private Sub ComboBox1_Change()
  Dim DLig As Long, Lig As Long, MemVal As String
  Dim MaCol As New Collection ' Pour éviter les doublons
  ' Mémoriser la valeur du Cb
  MemVal = Me.ComboBox1
  ' Effacer la liste du combobox
  Me.ComboBox1.Clear
  ' Récupérer la dernière ligne du tableau
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Pour chaque ligne
  For Lig = 4 To DLig
    ' En cas d'erreur on continue
    On Error Resume Next
    ' Si le nom commence pas la/les première(s) lettre(s)
    If Range("A" & Lig) Like MemVal & "*" Then
      ' Ajouter le nom de la ligne à la collection
      MaCol.Add Range("A" & Lig), Range("A" & Lig)
      ' Si aucune erreur, ce n'est pas un doublon, on ajoute le nom dans la liste
      If Err.Number = 0 Then
        Me.ComboBox1.AddItem Range("A" & Lig)
      End If
    End If
    On Error GoTo 0
  Next Lig
End Sub

Ne pas oublier de mettre la propriété "MatchEntry" de ta ComboBox
sur : 2 - fmMatchEntryNone

A+
 
Dernière modification par un modérateur:
Re : liste en cascade vba

Merci pour le programme c'est cool sa fonctionne.😉

il reste un petit détail, chez moi l'ouverture automatique de la liste de choix ne souvre pas, c'est normal?

merci pour ce dernier petit détail.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
747
Retour