Problème remplissage ListBox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Re : Problème remplissage ListBox

Bonjour Marjounette, le Forum,
Bonjour Staple1600 😉

Il faudrait que tu commences par écrire d'une manière conventionnelle 😛
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....🙄

@+ 😎
 
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

@+ 😎
 
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 ! 😛

Je voudrais tout de même savoir pourquoi
UserForm1.ListBox1.List(i, 1) = .Range ....etc ne fonctionnait pas ? i est un entier pourtant?
 
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

@+ 😎
 
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 🙂

@+ 😎
 
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
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
292
Réponses
10
Affichages
799
Réponses
3
Affichages
672
Réponses
3
Affichages
507
Réponses
4
Affichages
507
Réponses
17
Affichages
2 K
Retour