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 :

Remplir ListBox Multicolonnes à partir d'un tableau filtré [XL-365]


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
    Ingénieur commercial
    Inscrit en
    Mai 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Mai 2020
    Messages : 19
    Par défaut Remplir ListBox Multicolonnes à partir d'un tableau filtré
    Bonjour à tous et toutes

    Je sèche depuis ce matin sur le remplissage d'une listBox de 5 colonnes à partir d'un tableau excel sur lequel est appliqué un filtre

    Je filtre le tableau excel à partir de la ligne ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'On filtre la liste des matériels selon le local retenu
        Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("a3:is" & Dernier_Mater).AutoFilter Field:=1, Criteria1:=Critere_Local
    J'initialise la ListBox avec le code suivant, mais en l'état toutes les lignes du tableau apparaissent. L'essai d'appliquer ".SpecialCells(xlCellTypeVisible)" ne fonctionne pas


    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
    'Nombre de colonnes dans la ListBox
    ListBoxMater2.ColumnCount = 5
    ''Largeur des colonnes de la ListBox
    ListBoxMater2.ColumnWidths = "590;60;15;15;15"
    '
     
    For i = 4 To Dernier_Mater
    '   Ajoute une ligne et insère la première donnée dans la colonne de gauche
        ListBoxMater2.AddItem Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("B" & i) '.SpecialCells(xlCellTypeVisible)
    '   Ajoute les deux autres données dans les colonnes de droite
       ListBoxMater2.List(ListBoxMater2.ListCount - 1, 1) = Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("c" & i)
       ListBoxMater2.List(ListBoxMater2.ListCount - 1, 2) = Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("ca" & i)
       ListBoxMater2.List(ListBoxMater2.ListCount - 1, 3) = Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("cb" & i)
       ListBoxMater2.List(ListBoxMater2.ListCount - 1, 4) = Workbooks("tlc_prj.xls").Worksheets("Lmater").Range("cc" & i)
    Next i

    Si vous avez une piste pour me sortir de ce faux pas, merci d'avance

    Daniel

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 143
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 143
    Par défaut
    Bonjour,
    Citation Envoyé par Toutes les C Voir le message
    Je sèche depuis ce matin sur le remplissage d'une listBox de 5 colonnes à partir d'un tableau excel sur lequel est appliqué un filtre
    Je te propose ceci qui devrait fonctionner et dont je t'ai un peu simplifié l'écriture
    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
    Dim wl As Worksheet
    Set wl = Workbooks("tlc_prj.xls").Worksheets("Lmater")
    With ListBoxMater2
    'Nombre de colonnes dans la ListBox
        .ColumnCount = 5
    ''Largeur des colonnes de la ListBox
        .ColumnWidths = "590;60;15;15;15"
    '
        For i = 4 To Dernier_Mater
            If Not Rows(i).Hidden Then
            '   Ajoute une ligne et insère la première donnée dans la colonne de gauche
                .AddItem wl.Range("B" & i) 
            '   Ajoute les deux autres données dans les colonnes de droite
               .List(.ListCount - 1, 1) = wl.Range("c" & i)
               .List(.ListCount - 1, 2) = wl.Range("ca" & i)
               .List(.ListCount - 1, 3) = wl.Range("cb" & i)
               .List(.ListCount - 1, 4) = wl.Range("cc" & i)
            End If
        Next i
    End With
    Set wl = Nothing

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mai 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Mai 2020
    Messages : 19
    Par défaut
    Merci beaucoup Anasecu !

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

Discussions similaires

  1. Remplir un DataGrid à partir d'un tableau
    Par zaineb.z dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/06/2010, 12h41
  2. remplir un champ à partir d'un tableau
    Par youssef1983 dans le forum jQuery
    Réponses: 3
    Dernier message: 21/12/2009, 16h49
  3. Remplir une plage à partir d'un tableau
    Par roudy78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2007, 11h56
  4. Réponses: 2
    Dernier message: 28/12/2005, 17h53
  5. alimanter une listbox a partir d'un tableau
    Par wikimeta dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/10/2005, 15h24

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