Menu déroulant d'un filtre auto dans une combobox

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 !

Pimousse17

XLDnaute Nouveau
Bonjour à tous et merci d'avance à ceux qui pourront m'éclairer 😀

Est-il possible d'avoir le même affichage dans le menu déroulant d'une combobox que dans celui d'un filtre auto ?
Je m'explique j'ai une BDD client avec un champ contenant les noms et prénoms de mes clients. Lorsque je passe par le menu déroulant du filtre auto le menu déroulant me propose la liste des clients trié par ordre alphabétique, sans doublons, sans ligne vide... et tout ça sans modifier ma base et de manière instantanée.
La même chose avec une combobox dans un USF m'oblige à faire un filtre, un tri... avant de pouvoir afficher quelque de correct avec ma combobox.
D'où ma question comment réussir à obtenir instantanément se que j'ai en un clic sur le filtre auto dans une combobox ? 😕 est-se possible ?

J'espère avoir été clair

Merci d'avance encore !
 
Re : Menu déroulant d'un filtre auto dans une combobox

Bonsoir Pimousse17,

Je pense que tu seras obligé de le coder...
Voici une fonction qui prend en paramètre la zone qu'il faut "nettoyer" et qui renvoie un tableau trié :
VB:
Public Function TriSansDoublon(zone As Range) As Variant()
Dim monDico As Object, laCell As Range, i As Long, j As Long, tmpS As String, tmpT() As Variant
    Set monDico = CreateObject("Scripting.Dictionary")
    On Error Resume Next
     For Each laCell In zone.Cells
         If laCell.Text <> "" Then monDico.Add laCell.Text, laCell.Text
     Next laCell
    On Error GoTo 0
    tmpT = monDico.Items
    For i = LBound(tmpT) To UBound(tmpT) - 1
        For j = i + 1 To UBound(tmpT)
            If tmpT(i) > tmpT(j) Then
                tmpS = tmpT(i)
                tmpT(i) = tmpT(j)
                tmpT(j) = tmpS
            End If
        Next j
    Next i
    TriSansDoublon = tmpT
End Function
Du coup, voici comment il faut initialiser la ComboBox (en supposant que les champs de ta BDD contenant les noms et prénoms sont dans la zone A2:A100 de la feuille BDD) :
VB:
Me.ComboBox1.List = TriSansDoublon(ThisWorkbook.Sheets("BDD").Range("A2:A100"))
A+
 
Dernière édition:
- 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
7
Affichages
416
  • Question Question
Réponses
1
Affichages
616
Retour