IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème sur filtre combobox et userform [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut Problème sur filtre combobox et userform
    Bonjour à toutes et à tous,

    J'ai créer l'Userform sans problème et j'ai bidouiller un code VBA:
    Mais voila j'ai un problème:

    Quand je choisis un paramètre dans une liste déroulante de ma userform et que je clique sur le bouton " rechercher ", il me filtre toute ma base de données( toutes les colonnes, mais j'aimerais qu'il me filtre juste la colonne sélectionnée.

    Je pense qu'il faut séparer le code sur chaque combobox, mais mes compétences en programmation sont très limitées.

    Je joins un fichier excel pour exemple

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Bienvenue sur le Forum DVB

    Un titre plus explicite s'il vous plaît

    Et personnellement, je préfèrerais un bout de code qui fait défaut à tout un fichier, pour commencer. Comme ça si l'un de nous voit une bidouille pas trop nette juste à vue, ça nous éviterait de fouiller tout le fichier.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    Merci de me prêter de l'attention. Voici tout le code de mon userform :
    Je veux juste dire que j'ai un niveau de débutant en ce qui concerne la programmation vba.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub CommandButton1_Click()
     
    ActiveSheet.Range("$A$3:$e$200").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
    ActiveSheet.Range("$A$3:$e$200").AutoFilter Field:=2, Criteria1:=ComboBox2.Value
    ActiveSheet.Range("$A$3:$e$200").AutoFilter Field:=3, Criteria1:=ComboBox3.Value
    ActiveSheet.Range("$A$3:$e$200").AutoFilter Field:=4, Criteria1:=ComboBox4.Value
    ActiveSheet.Range("$A$3:$e$200").AutoFilter Field:=5, Criteria1:=ComboBox5.Value
     
    Unload Me
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
    ActiveSheet.Range("$A$3:$e$200").AutoFilter
        Set dico = CreateObject("Scripting.dictionary")
        Set dico1 = CreateObject("Scripting.dictionary")
        Set dico2 = CreateObject("Scripting.dictionary")
        Set dico3 = CreateObject("Scripting.dictionary")
        Set dico4 = CreateObject("Scripting.dictionary")
     
    For n = 2 To Range("e65536").End(xlUp).Row
     
    a = Range("a" & n)
    b = Range("b" & n)
    c = Range("c" & n)
    d = Range("d" & n)
    e = Range("e" & n)
     
    dico(a) = 1
    dico1(b) = 1
    dico2(c) = 1
    dico3(d) = 1
    dico4(e) = 1
     
    Next
    ComboBox1.List = dico.keys
    ComboBox2.List = dico1.keys
    ComboBox3.List = dico2.keys
    ComboBox4.List = dico3.keys
    ComboBox5.List = dico4.keys
     
    End Sub

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Bien, heu... déjà que le filtre automatique filtre tout le tableau puisque c'est son mode de fonctionnement... Un filtre élaboré serait plus indiqué, et le résultat exporté sur une autre feuille, si mes souvenirs sont bons.

    C'est tout ce que je peux te donner comme aide puisque je ne l'ai jamais fait en VBA (seulement directement dans Excel).

    T'as essayé d'enregistrer une macro et de voir ce que ça donne et d'utiliser le code comme base de travail ?

  5. #5
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    Tout à fait, j'ai déjà essayer le filtre élaboré mais j'ai besoin d'un interface avec des combobox pour sélectionner mes critères et filtrer mes données.

    Le souci comme tu peux le voir c'est que dès que je sélectionne un paramètre et que je clique sur rechercher, il me filtre tout mon tableau (par exemple, je cherche que les personnes du sexe masculin).

    En tout cas merci de prendre le temps de me répondre

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Edit: j'ai relu ton sujet
    Sur le fichier joint, remplace ton code par ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private Sub UserForm_Initialize()
    Dim LastLig As Long, n As Long
     
    With Sheets("bras")
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set dico = CreateObject("Scripting.dictionary")
        Set dico1 = CreateObject("Scripting.dictionary")
        Set dico2 = CreateObject("Scripting.dictionary")
        Set dico3 = CreateObject("Scripting.dictionary")
        Set dico4 = CreateObject("Scripting.dictionary")
        For n = 2 To LastLig
            dico(.Range("A" & n).Value) = 1
            dico1(.Range("B" & n).Value) = 1
            dico2(.Range("C" & n).Value) = 1
            dico3(.Range("D" & n).Value) = 1
            dico4(.Range("E" & n).Value) = 1
        Next n
    End With
    ComboBox1.List = dico.keys
    ComboBox2.List = dico1.keys
    ComboBox3.List = dico2.keys
    ComboBox4.List = dico3.keys
    ComboBox5.List = dico4.keys
     
    End Sub
     
    Private Sub CommandButton1_Click()
    Dim LastLig As Long
    Dim Cr(1 To 5)
    Dim i As Byte
     
    With Sheets("bras")
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To 5
            Cr(i) = IIf(Me.Controls("ComboBox" & i).ListIndex = -1, "<>", Me.Controls("ComboBox" & i).Value)
        Next i
        With .Range("A1:E" & LastLig)
            .AutoFilter Field:=1, Criteria1:=Cr(1)
            .AutoFilter Field:=2, Criteria1:=Cr(2)
            .AutoFilter Field:=3, Criteria1:=Cr(3)
            .AutoFilter Field:=4, Criteria1:=Cr(4)
            .AutoFilter Field:=5, Criteria1:=Cr(5)
        End With
    End With
    Unload Me
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problèmes sur un combobox dans une classe appelée
    Par francky74 dans le forum JDBC
    Réponses: 9
    Dernier message: 02/04/2014, 13h09
  2. [MVVM] Problème sur mes Combobox
    Par lsylvain dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 22/08/2013, 09h08
  3. [Admin] problème sur filtre explorateur
    Par roxise dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 25/01/2011, 13h46
  4. Petit problème sur un comboBox
    Par Claude_Azoulai dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 14h15
  5. [VB.NET] Problème sur composant comboBox hérité
    Par SergeF dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2004, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo