VBA Liste déroulante pour filtrer une base

Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je suis un grand débutant en VBA, mais mon objectifs est de créer un userform avec plusieurs listes déroulantes, qui serait dépendante les unes des autres (la deuxième liste se modifie en fonction de la première). J'ai déjà longuement cherché, j'ai cru comprendre qu'une astuce constituait à nommer les cellules, mais mon tableau étant assez dense 3500 lignes, c'est difficile à envisager ...

Ces listes déroulantes doivent me permettre de filtrer ce tableau un peu de la même façon qu'un filtre automatique.

Je ne tiens pas à utiliser le filtre automatique afin de faciliter au maximum l'utilisation pour l'utilisateur.

Ah oui aussi comment faire pour retirer les doublons dans une liste déroulante ? J'ai vu des partie de code en cherchant, mais vu que je débute ça m'a un peu embrouillé ...

Voila, en tout cas vous avez l'air super sympa sur ce forum, je tenais à le dire !
A voir également:

5 réponses

Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai réussi à supprimer les doublons de mes listes déroulantes ! Mais j'ai eu du mal ^^

Voila ce que j'ai fais :

Private Sub UserForm_Initialize()
    Dim i As Integer 
    For i = 1 To Range("C60000").End(xlUp).Row
    Combobox1 = Range("C" & i)
 
   If Combobox1.ListIndex = -1 And Range("C" & i) <> "" Then
   Combobox1.AddItem Range("C" & i)
   End If 
  Next i  
  End sub


Par contre je bloque toujours complètement pour filtrer ma liste à partir de mes Combo box, toujours ce même message d'erreur.

Et pareil pour la communication entre les Combo box, je ne m'en sors pas :(
1
Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai trouvé pour le filtre si jamais quelqu'un se pose la même question !
Le problème venait bien du range, ou plutôt du "selection" :

En le mettant comme ça ça marche.
Range("A1", "M1").Select
[C3].AutoFilter Field:=3, Criteria1:=Combobox1.Value


Par contre je galère toujours pour mettre mes combo box en cascades, mais je reprend espoir !
1
Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   2
 
Je détaille peut être un peut plus :

Private Sub ComboBox1_Change()

Label1.Caption = Combobox1.Value

Windows("Description_technique_des_appareils2.xls").Activate
Selection.AutoFilter field:=3, Criteria1:=Combobox1.Value
Combobox2.SetFocus
End sub

Voila mon code pour réaliser le filtrage de ma base grâce à la première Combo box.
Lorsque je lance le programme, le filtrage se fait comme il faut mais une erreur apparait:
"La méthode Autofilter de la classe range à échoué"

D'où vient cette erreur et comment la corriger ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Je pense que le problème vient de "Selection".
La sélection n'est pas définie. Il faut sélectionner la plage à trier.
Par exemple:
Range("A2:F15").Select
Selection.AutoFilter field:=3, Criteria1:=Combobox1.Value 


;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Knight94490 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci, j'ai essayé mais j'ai la même erreur ...
0