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 :

Critère de Filtre et code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut Critère de Filtre et code VBA
    Bonjour,

    J'ai le filtre suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sheets("Liste Matériel").Range("A2:G49").AdvancedFilter Action:=xlFilterCopy _
            , CriteriaRange:=Range("A98:F187"), CopyToRange:=Range("A7:G96"), Unique _
            :=False
    J'aimerais que mon critère de filtre ne soit plus le contenu des cellules A98 à F187 mais plutot la valeur contenue dans le combobox intitulé "Foragebox".En effet pour l'instant mes cellules A98 à F187 stockent les valeurs obtenues ds Foragebox après clique sur un bouton d'ajout puis un filtre se sert de cette plage comme critère... Un peu tiré par les cheveux comme système!!!

    Si quelqu'un connait la syntaxe???

    Un grand Merci d'avance!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut benoit13
    J'aimerais que mon critère de filtre ne soit plus le contenu des cellules A98 à F187 mais plutot la valeur contenue dans le combobox intitulé "Foragebox"
    Pas si cappillo-tracté que ça
    Mais comme d'hab, je comprends pas tout :
    un critère de filtre élaboré est composé de 2 éléments
    - une ligne de titre, qui lui donne les champs faisant partie du filtre
    -une/plusieurs lignes de données indiquant les critères.

    la solution (pas testée) passerait, à mon sens par un tableau où tu mettrais en ligne 1 les titres et en lignes suivantes les données que tu prendrais dans ta/tes combobox.
    Mais là, ça dépasse un peu mes compétences (en un seul mot, hein!!!)

    une autre solution plus simple, c'est que le choix de ta combobox soit recopié dans la cellule que masque ta combo : tu te retrouves avec une plage fixe sur feuille que tu peux mettre en critère.

    a+

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    J'ai déjà montrer ce module à adapter suivant les besoins
    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
    Private Sub TextBoxproduitcherche_Exit(ByVal Cancel As MSForms.ReturnBoolean)'c'est un textbox pour les criteres de recherche
    Dim cel As Range, ERREUR As Integer
    Application.ScreenUpdating = False
    With sheets("references")'c'est ma feuille
        If .AutoFilterMode Then
         .AutoFilterMode = False
        End If
        ERREUR = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("b2").AutoFilter
        .Range("b2").AutoFilter Field:=2, Criteria1:="*" & TextBoxproduitcherche & "*"
        Set PLAGE = .Range("b2", .Range("b2").End(xlDown))
        Set PLAGE = PLAGE.Cells.SpecialCells(xlCellTypeVisible)
     
        If PLAGE.Count > ERREUR Then
        If .AutoFilterMode Then
         .AutoFilterMode = False
        MsgBox "AUCUN CRITERE NE CORRESPOND A LA RECHERCHE"
        Exit Sub
        End If
        End If
        With REFCHOISIE 'c'est ma listbox
        .Clear
    'et toi tu fais ce que tu veux
        For Each cel In PLAGE
          .AddItem cel(1, 0)
          .Column(1, .ListCount - 1) = cel(1, 1)
          .Column(2, .ListCount - 1) = VBA.Format(cel(1, 2), "#,##0.00 €")
          .Column(3, .ListCount - 1) = VBA.Format(cel(1, 3), "#0.00 %")
          .Column(4, .ListCount - 1) = cel(1, 5)
          .Column(5, .ListCount - 1) = VBA.Format(cel(1, 6), "#0.00")
          .Column(6, .ListCount - 1) = VBA.Format(cel(1, 8), "# ##0.00 €")
          .Column(7, .ListCount - 1) = VBA.Format(cel(1, 9), "##0")
          .BoundColumn = 1
        Next cel
     
        End With
    Selection.AutoFilter
    .Select
    If .AutoFilterMode Then
        .AutoFilterMode = False
        End If
    End With
    Application.ScreenUpdating = True
    End Sub
    juste si ça peut faire réfléchir
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Merci à tous,

    Ce que j'ai fait fonctionne plutot pas mal donc je ne vais pas compliquer les choses.
    Mon combobox copie sa valeur dans une cellule masquée qui me sert de critère de filtre...
    Il doit y avoir plus efficace mais ca marche!

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

Discussions similaires

  1. [XL-2007] Code VBA filtre "Sélectionner tout"
    Par Nico las dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/10/2012, 15h08
  2. [XL-2010] Code VBA - positionner au premier choix d'un filtre dans un TCD
    Par Ali.G dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/03/2012, 22h54
  3. Code VBA pour Copier une cellule dans un filtre?
    Par Redisdead dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2009, 05h48
  4. Réponses: 12
    Dernier message: 13/08/2008, 17h04
  5. Réponses: 4
    Dernier message: 22/02/2008, 10h02

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