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.
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: