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 :

quatre listBox avec des filtres automatiques [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
    Homme Profil pro
    Responsable de Maintenance
    Inscrit en
    Juin 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 31
    Par défaut quatre listBox avec des filtres automatiques
    Bonjour a tous;

    J'essaye de faire un recapitulatif de mon tableau sous forme de listBox avec des filtres automatiques.
    J'ai bien la solution mais le code pour une seule listBox est enorme; donc je ne m'imagine pas avec 4 listBox. ( Je vous ai laissé dans le module 2 pour voir ma version de mon code)

    Voici mon probleme ( qui est d'ailleurs expliqué sur mon fichier joint)

    J'ai quatres ListBox ou chacun a ses filtres automatiques
    exemple:
    LISTBOX1 :Affichage des colonnes de A à M de la feuille1 ( avec comme critere de filtre en A : i.....jours & en F : d) Les colonnes E ; F; G; H; I K peuvent etre masquées.
    LISTBOX2 :Affichage des colonnes de A à M de la feuille1 ( avec comme critere de filtre en A : a.....jours & en F : d) Les colonnes E ; F; G; H; I K peuvent etre masquées.



    Etc...;



    JE vous remercie par avance de vos reponses
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Pour la listbox1, en réglant la propriété "ColumnCount" à 13 et en réglant la propriété "ColumnWidth" suivant la largeur voulue pour les colonnes, utilise le code suivant pour renseigner la listbox :

    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
    Private Sub UserForm_Initialize()
        Dim Plage As Range, c As Range
        With Sheets("Feuil1")
            Set Plage = .Range(.[A6], .Cells(.Rows.Count, 13).End(xlUp))
            .AutoFilterMode = False
        End With
        With Me.ListBox1
            Plage.AutoFilter 1, "=i*"
            Plage.AutoFilter 6, "D"
            Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
            If Plage.Count > 0 Then
                For Each c In Plage
                    .AddItem c.Value
                    For i = 1 To 12
                        .List(.ListCount - 1, i) = c.Offset(, i).Value
                    Next i
                Next c
            End If
        End With
    End Sub
    Réplique le code en le modifiant pour les autres listboxes.

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de Maintenance
    Inscrit en
    Juin 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 31
    Par défaut
    Bonjour;

    Merci pour ta reponse mais apres un essai sur une seule ListBox il me marque une erreur de propriete List.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Au temps pour moi. Il faut définir les 8 colonnes utilies et utiliser le code :

    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
    Private Sub UserForm_Initialize()
        Dim Plage As Range, c As Range
        With Sheets("Feuil1")
            Set Plage = .Range(.[A6], .Cells(.Rows.Count, 13).End(xlUp))
            .AutoFilterMode = False
        End With
        With Me.ListBox1
            Plage.AutoFilter 1, "=i*"
            Plage.AutoFilter 6, "D"
            Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
            If Plage.Count > 0 Then
                For Each c In Plage
                    .AddItem c.Value
                    .List(.ListCount - 1, 1) = c.Offset(, 1).Value
                    .List(.ListCount - 1, 2) = c.Offset(, 2).Value
                    .List(.ListCount - 1, 3) = c.Offset(, 3).Value
                    .List(.ListCount - 1, 4) = c.Offset(, 8).Value
                    .List(.ListCount - 1, 5) = c.Offset(, 9).Value
                    .List(.ListCount - 1, 6) = c.Offset(, 11).Value
                    .List(.ListCount - 1, 7) = c.Offset(, 12).Value
                Next c
            End If
        End With
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de Maintenance
    Inscrit en
    Juin 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 31
    Par défaut
    Bonsoir;


    Merci pour votre code.

    Mais j'ai pensé a une autre idée : peux etre pas realisable?
    Est-ce possible de faire la meme chose mais avec des listview?

    Merci
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Est-ce possible de faire la meme chose mais avec des listview?
    Peut-être. Il faut choisir les outils en fonction de ce que tu veux faire. Or je ne sais pas ce que tu désires. Pourquoi une listbox plutôt qu'une listview ? Pour le moment, je n'ai fait que remplir la boîte. Je ne sais pas même la valeur que tu souhaites récupérer.

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

Discussions similaires

  1. Simuler une listbox avec des couleurs
    Par Invité dans le forum Contribuez
    Réponses: 9
    Dernier message: 19/03/2020, 20h49
  2. Réponses: 24
    Dernier message: 02/05/2018, 23h41
  3. alimenter une listbox avec données filtrées
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/12/2007, 23h42
  4. Où trouver une listbox avec des checkbox dedans ?
    Par zarbiman dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/09/2007, 08h59
  5. probleme avec des filtres de recherche sur des dates
    Par MCarole dans le forum Access
    Réponses: 2
    Dernier message: 24/07/2006, 10h22

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