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 :

Filtrage dans Listbox/Combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Filtrage dans Listbox/Combobox
    Bonjour,
    Est il possible de n'afficher dans une listbox que des enregistrements correspondant à certains "critères" ?.
    Par exemple, n'afficher dans la listbox les enregistrements pour lesquels un champ "date" de la base de données est vide ?
    J'ai beau chercher, je ne vois pas trop par quel bout appréhender ce problème...
    Merci de votre aide

    Cordialement,
    Ipéfix

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    J'avais fait ce code :

    peut-etre que tu peux l'adapter
    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 TextBoxproduitcherche_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim cel As Range, ERREUR As Integer
    Application.ScreenUpdating = False
    With Sheets("references")
        If .AutoFilterMode Then
         .AutoFilterMode = False
        End If
        ERREUR = .Range("b2").End(xlDown).Offset(0, 0).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
        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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Merci Casefayere pour ta réponse rapide...
    Je regarde çà de plus près et ne manquerai pas de faire un retour...
    Bonne journée

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Mon textbox permet d'entrer le critère de filtre pour la listbox,

    Si je peux, pour d'autres précisions, à suivre....

    Bonne journée

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Bonjour casefayere, Ipéfix, les autres,
    Pour le coup on peut peut-être simplifier
    Le principe reste le même :
    - Parcours de la plage de données dans la colonne date (A dans l'exemple)
    - Si la cellule date est vide, prendre le renseignement dans la colonne "donnée" (D dans l'exemple) pour l'ajouter à la liste avec additem
    Comme tu ne précises pas où se trouvent l'une et l'autre, j'ai donc mis les dates en colonne A et les données en colonne D, tu adapteras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Userform_Activate()
    Dim derlig as long, Cell as range
            Worksheets("Lafeuille").activate
            Derlig = Split(ActiveSheet.UsedRange.Address, "$")(4)
            For each cell in Range("A1:A" & derlig)
                 if Cell = "" then listbox1.additem Cell.offset(0, 3) 'pour colonne D
            Next
    End sub
    Bonne journée

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour ouskel'n'or,

    Toujours sur la brèche !

    J'essayerai ta propo pour moi, ça m'apprend et peut-etre ça soulagne le code

    Bonne journée

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Chers Excel..ents,
    Effectivement, le raccourci que propose Ouskel'n'or représente une approche simplifiée du problème.
    J'adapte çà à ma situation et ne manquerai pas de vous relayer l'issue de mes travaux.
    encore merci

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    A Ouskel'n'or

    Je n'arrive pas à adapter ta solution dans mon cas car l'alimentation de ma listbox se fait par les critères donnés dans ma textbox et avec ma formule si je n'inscrit rien dans la textbox, la listbox se remplit entièrement (ça m'arrange), si je ne mets qu'une partie de nom dans la textbox, la listbox se remplit avec les critères recherchés. Bien sur mon code est plus rébarbatif mais j'ai plusieurs colonnes dans la listbox

    enfin, voilà quoi

    Bonne continuation et tout et tout

Discussions similaires

  1. [XL-2003] ListBox-ComboBox avec valeur en dur dans VB
    Par clemini dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/12/2010, 11h46
  2. Réponses: 0
    Dernier message: 29/11/2010, 00h43
  3. [XL-2007] Comment afficher une liste dans ListBox ou ComboBox
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2010, 15h09
  4. [XL-2003] additem dans listbox via textbox et combobox
    Par alex santus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2010, 09h45
  5. filtrage dans une listbox - VB6
    Par captainamerica75 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/05/2007, 15h45

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