Problème remplissage ListBox

Marjounette

XLDnaute Nouveau
Bonjour le forum,

Je souhaite combiner une ListBox avec un TabStrip de manière à obtenir plusieurs onglets qui me permettent d'afficher des données triées selon un critère de catégorie.

Cependant, je n'arrive pas à remplir la ListBox des ligne que je parcours dans une boucle FOR (voir code ci-dessous):
Code:
Select Case n
        Case 0 'Tous les coureurs
            UserForm1.ListBox1.Clear 'Efface la listBox1 et ré-écris tous les coureurs dedans
            Lecture_liste 'Execute la lecture de toute la page engagements
        Case 1 'Poussins
            temp = UserForm1.ListBox1.ListCount 'Garde en mémoire le nombre de coureur dans la liste
            UserForm1.ListBox1.Clear 'Efface la listBox1 et ré-écris les poussins dedans
                For i = 2 To temp
                    If (Sheets("Engagements").Cells(i, 5) = "Poussin") Then
                            UserForm1.ListBox1.List = .Range("A" & i&":F"&i).Value   '<--------------Je veux écrire la ligne i (de la colone A à la colonne F) 
                    End If
                Next i
End Select
Je sais que la synthaxe .Range("A" & i&":F"&i) est fausse. Même en écrivant simplement .Range("A" & i), j'ai un message d'erreur:
"Impossible de définir la propriété List. Index de table de propriétés non valide."

Quelqu'un peut-il m'aider?
Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Re : Problème remplissage ListBox

Bonsoir à tous

Marjounette [Bienvenue sur le forum]
Quelqu'un peut-il m'aider?
Oui.
Toi en premier lieu ;)
En relisant la charte du forum pour déterminer ce qui manque dans ta question...:rolleyes:
[un indice: section Demandeur, 5) ]
 

Marjounette

XLDnaute Nouveau
Re : Problème remplissage ListBox

Voilà voilà ! ^^

Le problème est, lorsque tu clic sur l'onglet "Poussins", seul la 1ere colonne de la ListBox est remplie.
 

Fichiers joints

xhudi69

XLDnaute Accro
Re : Problème remplissage ListBox

Bonjour Marjounette, le Forum,
Bonjour Staple1600 ;)

Il faudrait que tu commences par écrire d'une manière conventionnelle :p
Code:
Sub Onglets()
Dim n As Integer, i As Integer, Drl As Integer
n = UserForm1.TabStrip1.SelectedItem.Index 'Valeur de l'onglet du TabStrip1

With Sheets("Engagements")
    Drl = .Range("A65500").End(xlUp).Row
    Select Case n
        Case 0 'Tous les coureurs
            UserForm1.ListBox1.Clear 'Efface la listBox1
            Lecture_liste 'Execute la lecture de toute la page engagements
        Case 1 'Poussins
            UserForm1.ListBox1.Clear 'Efface la listBox1
            For i = 2 To Drl
                If .Cells(i, 5) = "Poussin" Then
                        UserForm1.ListBox1.AddItem .Range("A" & i).Value
                        UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 1) = .Range("B" & i).Value
                        UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 2) = .Range("C" & i).Value
                        UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 3) = .Range("D" & i).Value
                        UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 4) = .Range("E" & i).Value
                        UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 5) = .Range("F" & i).Value
                End If
            Next i
        Case 2
            UserForm1.ListBox1.Clear
        Case 3
            UserForm1.ListBox1.Clear
        Case 4
            UserForm1.ListBox1.Clear
        Case 5
            UserForm1.ListBox1.Clear
    End Select
End With
End Sub
A toi d'écrire la suite....:rolleyes:

@+ :cool:
 

xhudi69

XLDnaute Accro
Re : Problème remplissage ListBox

Bonjour Marjounette, le Forum,

Ou alors, c'est mieux avec .Cells(i ,1)
Code:
Sub Onglets()
Dim n As Integer, i As Integer, Drl As Integer
n = UserForm1.TabStrip1.SelectedItem.Index 'Valeur de l'onglet du TabStrip1

With Sheets("Engagements")
    Drl = .Range("A65500").End(xlUp).Row
    Select Case n
        Case 0 'Tous les coureurs
            UserForm1.ListBox1.Clear 'Efface la listBox1
            Lecture_liste 'Execute la lecture de toute la page engagements
        Case 1 'Poussins
            UserForm1.ListBox1.Clear 'Efface la listBox1
            For i = 2 To Drl
                If .Cells(i, 5) = "Poussin" Then
                    UserForm1.ListBox1.AddItem .Cells(i, 1).Value
                    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 1) = .Cells(i, 2).Value
                    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 2) = .Cells(i, 3).Value
                    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 3) = .Cells(i, 4).Value
                    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 4) = .Cells(i, 5).Value
                    UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 5) = .Cells(i, 6).Value
                End If
            Next i
        Case 2
            UserForm1.ListBox1.Clear
        Case 3
            UserForm1.ListBox1.Clear
        Case 4
            UserForm1.ListBox1.Clear
        Case 5
            UserForm1.ListBox1.Clear
    End Select
End With
End Sub
@+ :cool:
 

Marjounette

XLDnaute Nouveau
Re : Problème remplissage ListBox

Un grand merci xhudi69 !

C'est vrai que mon code n'est pas très bien écris, c'est la première fois que je met aux userform et vba en général. J'apprends sur le tas ! :p

Je voudrais tout de même savoir pourquoi
UserForm1.ListBox1.List(i, 1) = .Range ....etc ne fonctionnait pas ? i est un entier pourtant?
 

xhudi69

XLDnaute Accro
Re : Problème remplissage ListBox

Bonsoir Marjounette, le Forum,

Tu dois commencer à remplir ton ListBox1 par UserForm1.ListBox1.AddItem ........pour remplir la colonne 0 du ListBox.
puis ensuite comme décrit dans le code au post #5

@+ :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Problème remplissage ListBox

Bonsoir à tous

xhudi69
Suggestion en passant ;)
Case 2,3,4,5
UserForm1.ListBox1.Clear
End Select
ou
Case 2 To 5
UserForm1.ListBox1.Clear
End Select
 

xhudi69

XLDnaute Accro
Re : Problème remplissage ListBox

Bonjour Marjounette, le Forum,
Bonjour Staple1600 ;)

Suggestion en passant
Case 2,3,4,5
UserForm1.ListBox1.Clear
End Select
ou
Case 2 To 5
UserForm1.ListBox1.Clear
End Select
Oui bien sûr, par contraction, mais pour notre amie, j'ai précisé
Il faudrait que tu commences par écrire d'une manière conventionnelle
Puis laisser de la place entre les "Case" lui permet d'insérer ces procédures, isn't it :)

@+ :cool:
 

laetitia90

XLDnaute Barbatruc
Re : Problème remplissage ListBox

bonjour tous :):)
un seul user est suffisant a mon avis!!

pour modif doucle clik dans la listbox sur un item.... tu modifie & click bouton modifie

meme principe pour supp..& enreg...

attention pas trop mis de conditions il faut adapter
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas