[Resolu] Gestion de tris par dictionary & combobox

  • Initiateur de la discussion Initiateur de la discussion Enerjp
  • 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 !

Enerjp

XLDnaute Junior
Bonjour,

Alors voilà, j'ai un Userform avec deux combobox (l'une les villes, l'autre pour les rues). L'idée est d'avoir les deux CB alimenté quand l'Userform apparaît pour pouvoir gérer les filtres d'une feuille.

J'ai récupérer le code de ce cher JB et tout marchais bien dans le meilleur des mondes. seulement j'ai modifié l'ordre de mes colonnes ("Ville" et "Rue"), rajouté des lignes et modifié les mises en formes et ça ne marche plus. Pas d'erreurs, mais les combobox sont vides...

Est-ce que quelqu'un à une idée? Je ne peux pas mettre de ficher ou l'userfom dsl(Fichier pro). Je met un exemple sans données dès que j'ai le temps d'en faire un.

Les en-têtes sont lignes 5 et seuls les champs "ville" et "rue" sont filtré.

J'ai essayé avec plusieurs Uf, de compter les clefs du dico (msgbox dico.count) en fin de code et la aussi pas le msg box? est- un problème de l’événement initialise?

Merci pour vos lumières.

Code:
Public Db As Worksheet
Public Ville As Object
Public Rue As Object
Public Tb

Private Sub SelecTest_Initialize()
Dim v As Integer

Set Db = ActiveSheet 'Sheets("Total")
Set Ville = CreateObject("Scripting.Dictionary")
  
    Db.Rows("5:5").AutoFilter
    
    Tb = Db.Range("A5:A" & Db.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
    
    For v = LBound(Tb) To UBound(Tb)
        If Tb(v, 1) <> "" Then Ville(Tb(v, 1)) = ""
    Next v
    
    Me.ComboVille.List = Ville.keys
    
    Erase Tb
    
End Sub

Private Sub ComboVille_Change()
Dim r As Integer

Set Db = ActiveSheet 'Sheets("Total")
Set Rue = CreateObject("Scripting.Dictionary")

    Db.Rows("5:5").AutoFilter
    Db.Range("A5:C5").AutoFilter Field:=1, Criteria1:=Me.ComboVille.Value
    
    Tb = Db.Range("B6:B30000").SpecialCells(xlCellTypeVisible)
    
    For r = LBound(Tb) To UBound(Tb)
        If Tb(r, 1) <> "" Then Rue(Tb(r, 1)) = ""
    Next r
    
    With Me.ComboRue
        .List = Rue.keys
        .Value = ComboRue.List(0) 'Rue.Item(0)
    End With

End Sub
 
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
40
Affichages
3 K
Réponses
5
Affichages
182
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour