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 :

ListBox multi colonne


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut ListBox multi colonne
    Bonjour,
    J'aimerai créer un genre de filtre à la Excel dans mon UserForm. Or pour l'instant j'ai un problème d'utilisation du ListBox multicolonne. Voici mon 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 RemplissageCbTri(numColonne As Integer, cbTri As ComboBox)
        Dim szTmp1 As Variant
        Dim Unique As New Collection
        Dim szTmp2 As Variant
        Dim i As Integer
     
        i = Me.lstContrats.ColumnCount  'récupérer le nombre de ligne dans la ListBox
     
        On Error Resume Next
     
        For Each szTmp1 In Me.lstContrats   'boucle sur les éléments de la colonne
            'Stocke les données dans une collection
            '(La collection n'accepte que des données uniques et permet donc
            ' de filtrer facilement les doublons).
            Unique.Add szTmp1, CStr(szTmp1)
        Next szTmp1
     
        On Error GoTo 0
     
        For Each szTmp2 In Unique   'Boucle sur le contenu de la collection pour alimenter la ComboBox
            cbTri.AddItem szTmp2
        Next szTmp2
    End Sub
    Donc on rempli pour une colonne donnée de la ListBox, un ComboBox avec les éléments (sans doublon bien sur)

    Mais ça me parait pas bon. Des idés?
    Dernière modification par Invité ; 07/05/2012 à 10h07.

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir ici

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci mais justement je me suis inspiré du dernier exemple et je l'ai adapté à mon problème (dans l'exemple les données sont sur la feuille Excel alors que moi ils sont au sein de mon UserForm).

    Je reformule mon besoin:
    Ce qui plante c'est la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each szTmp1 In Me.lstContrats.Column
    Le In devrait s'appliquer sur la colonne passée en paramètre, mais je sais pas comment sélectionner une colonne du ListBox.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,
    Toujours pas clair le besoin a quoi doit servir cette boucle ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    En fait j'ai un listbox multi colonne qui contient différentes données. J'aimerai au dessus de chaque colonne mettre une combobox qui contiendrai tout les valeurs de la colonne en dessous sans doublon. Ce qui permettrai par la suite, à l'utilisateur d'appliquer un filtre en affichant dans le listbox multicolonne que les lignes aillant la même valeur que celle sélectionnée dans la combobox de la colonne. Bref un système de filtre de tableau comme on en voit partout.

    Donc ma boucle devrait me servir à extraire toute les valeurs contenue dans la colonne sur laquelle on travail. Et ajouter sans doublon, ces valeurs dans le combobox.

    Ou peut-être ça serai mieux de faire appel au fonction de filtre d'Excel, si c'est possible, vu que mon tableau est présent sur une feuille Excel.
    Dernière modification par fring ; 09/05/2012 à 10h22. Motif: fusion de 2 messages

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai réussi à trouver une solution à mon problème en remplacant le For Each par un simple For qui parcours les différentes colonnes.

    Mais j'ai une autre question:
    Comment on fait pour supprimer (ou plutôt masquer) des ligne de mon tableau de ListBox multicolonne?

    Donc c'est toujours pour le même objectif de réaliser un système de filtre pour afficher que les colonne contenant l'élément sur lequel on a cliqué dans la ComboBox.

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

Discussions similaires

  1. [XL-2010] listbox multi colonne
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/04/2013, 08h19
  2. ListBox Multi Colonnes
    Par Hiraa dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/03/2010, 07h36
  3. Insertion données dans Listbox multi colonnes
    Par jrevert dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/08/2009, 16h38
  4. Listbox multi colonne
    Par soso78 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/12/2007, 10h48
  5. [VB6] comment saisir l'entête Listbox (multi colonnes)
    Par oumarsaw dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/04/2006, 16h21

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