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 :

Filtre avec plusieurs choix


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Filtre avec plusieurs choix
    Bonjour, Débutant en programmation, et n'ayant pas envie d'en faire mon métier, je créé des macro a partir de long fichiers excel, afin de créer des documents de synthèse exploitable par mes collègues.

    Explication:

    J'ai une liste de pièces dans mon stock, chaque pièce a une référence.
    dans cette liste, je souhaite extraire une liste de certaine pièce seulement. Ces pièces sont définit.
    Mes colonnes sont triées.
    Mon objectif est donc de créer un formulaire, ou je coche les pièces dont je veux voir apparaitre la synthèse des stock. jusque la, pas de problème.

    ma méthode était la suivante : a chaque nom de pièce dans le formulaire correspond plusieurs variable auquel j'ai attribué mes références de pièces.
    Donc selon le nombre de case que je coche, je veux filtré mon tableau pour ne voir apparaitre que les pièce qui m'intéresse ( je coche la case, qui active des variable, ces variables sont des numéro qui correspondent a mes référence de pièce, ensuite je filtre avec ces références dans ma colonne référence)
    Problème: il ne me les affiches pas sous forme de liste, il les affiche un par un mais les efface.

    Voila mon code pour la check box dans laquelle je fais mes choix.
    j'aurais voulu mettre un fichier exemple, mais la confidentialité dans mon entreprise m'en empeche...

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    Option Explicit
    Public a1 As Integer
    Public a2 As Integer
    Public b1 As Double
    Public b2 As Double
    Public c1 As Double
    Public c2 As Double
    Public c3 As Double
    Public c4 As Double
    Public d1 As Double
    Public d2 As Double
    Public e1 As Double
    Public e2 As Double
    Public f1 As Double
    Public f2 As Double
    Public f3 As Double
    Public g1 As Double
    Public g2 As Double
    Public h1 As Double
    Public i1 As Double
    Public i2 As Double
    Public i3 As Double
    Public i4 As Double
     
    Sub CheckBoxbielle_Click()
        Dim f1 As Double
        Dim f2 As Double
        Dim f3 As Double
     
            If CheckBoxbielle.Value = True Then
                f1 = 4495
                f2 = 2370
                f3 = 4781
            Else
                f1 = 0
                f2 = 0
                f3 = 0
            End If
    End Sub
     
    Sub CheckBoxcremcde_Click()
        Dim g1 As Double
        Dim g2 As Double
     
            If CheckBoxcremcde.Value = True Then
                g1 = 5001
                g2 = 3158
            Else
                g1 = 0
                g2 = 0
            End If
    End Sub
     
    Sub CheckBoxcremcomb_Click()
     
            If CheckBoxcremcomb.Value = True Then
                a1 = 3067
                a2 = 4558
            Else
                a1 = 0
                a2 = 0
            End If
     
    End Sub
     
    Sub CheckBoxpistcde_Click()
        Dim h1 As Double
     
            If CheckBoxpistcde.Value = True Then
                h1 = 4521
            Else
                h1 = 0
            End If
    End Sub
     
    Sub CheckBoxpistcomb_Click()
     
            If CheckBoxpistcomb.Value = True Then
                b1 = 5289
                b2 = 4514
            Else
                b1 = 0
                b2 = 0
            End If
     
    End Sub
     
    Sub CheckBoxplatine_Click()
     
            If CheckBoxplatine.Value = True Then
                c1 = 2333
                c2 = 5082
                c3 = 1253
                c4 = 4961
            Else
                c1 = 0
                c2 = 0
                c3 = 0
                c4 = 0
            End If
    End Sub
     
    Sub CheckBoxrotule_Click()
        Dim j1 As Double
        Dim j2 As Double
        Dim j3 As Double
     
            If CheckBoxrotule.Value = True Then
                j1 = 1122
                j2 = 4698
                j3 = 4813
            Else
                j1 = 0
                j2 = 0
                j3 = 0
            End If
     
    End Sub
     
    Sub CheckBoxroue_Click()
     
            If CheckBoxroue.Value = True Then
                e1 = 4565
                e2 = 4586
            Else
                e1 = 0
                e2 = 0
            End If
    End Sub
     
    Sub CheckBoxrouleau_Click()
     
            If CheckBoxrouleau.Value = True Then
                d1 = 4970
                d2 = 2231
            Else
                d1 = 0
                d2 = 0
            End If
    End Sub
     
     
     
    Sub CheckBoxvp_Click()
        Dim i1 As Double
        Dim i2 As Double
        Dim i3 As Double
        Dim i4 As Double
     
            If CheckBoxvp.Value = True Then
                i1 = 323013
                i2 = 323019
                i3 = 320004
                i4 = 323017
            Else
                i1 = 0
                i2 = 0
                i3 = 0
                i4 = 0
            End If
    End Sub
     
    Sub CommandButtonok_Click()
     
        'affichage des pîèces souhaité
            ActiveSheet.Range("$A$5:$P$1043").AutoFilter Field:=1, Criteria1:=Array(a1, a2, b1, b2, c1, c2, c3, c4, d1, d2, _
            e1, e2, f1, f2, f3, g1, g2, h1, i1, i2, i3, i4)
     
     
        'c1, c2, c3, c4, d1, d2, e1, e2, f1, f2, f3, g1, g2, h1, i1, i2, i3, i4
        Unload UserForm2
     
    End Sub
    Voila, je sais pas si vous avez compris. j'espère que oui, parce que ca fait 2jours complet que je suis dessus et que ca marche pas.

    Si vous avez des questions n'hésitez pas.

    Ou si vous avez d'autre idée pour faire ce que je souhaite faire...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Points : 539
    Points
    539
    Par défaut
    Bonjour,

    Utiliser 1 filtre avancé (Range.AdvancedFilter, méthode) avec 1 plage de critères.

    Cordialement.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Afin que vous puissiez mieux comprendre mon problème, et que je puisse enfin me sortir de cette galère, je vous ai fait un fichier type qui reprend mon problème en pièce jointes, le code n'est pas tout a fait le même mais c'est la même chose en plus simple.

    Comme vous pourrez le voir, quand on clique sur le bouton "chercher les stock" un formulaire apparait, je voudrais que lorsque je coche une case, seule les pièces qui appartiennent au groupe apparaissent, pareil si je choisis plusieurs groupe.

    Merci de votre aide
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] Filtre avec plusieurs critères
    Par jmh51 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/01/2011, 20h20
  2. [Toutes versions] Filtre avec plusieurs conditions
    Par possible924 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/07/2010, 10h58
  3. case avec plusieurs choix ?
    Par ggwtf dans le forum Qt
    Réponses: 6
    Dernier message: 11/05/2010, 00h37
  4. Recherchev avec plusieurs choix possibles
    Par solorac dans le forum Excel
    Réponses: 1
    Dernier message: 30/09/2008, 15h00
  5. like avec plusieurs choix
    Par mon_pseudo dans le forum Langage SQL
    Réponses: 12
    Dernier message: 20/06/2008, 10h42

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