Bonjour à tous,
Je me permets de vous soumettre 1 problème que je rencontre.
A l'ouverture d'un Userform, j'affiche le contenu d'une feuille excel dans une Listbox avec ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub UserForm_Initialize()
Call MAJ
End Sub
Et un module :
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
25
Sub MAJ()
'mise à zéro du compteur ligne
k = 0
'recherche de la dernière ligne du tableau excel
derligne1 = Split(Worksheets("BDD").UsedRange.Address, "$")(4)
 
With FormGen 'nom du formulaire
.ListEssai.Clear 'réinitialisation du contenu de la liste
'ouverture de la boucle de la ligne 2 à la dernière ligne du tableau excel
    For j = 2 To derligne1
        .ListEssai.AddItem 'ajout des items
        .ListEssai.List(k, 0) = Worksheets("BDD").Range("A" & j).Value 'remplissage ligne 0 colonne 0
        .ListEssai.List(k, 1) = Worksheets("BDD").Range("B" & j).Value 'remplissage ligne 0 colonne 1
        .ListEssai.List(k, 2) = Worksheets("BDD").Range("C" & j).Value 'remplissage ligne 0 colonne 2
        .ListEssai.List(k, 3) = Worksheets("BDD").Range("D" & j).Value 'remplissage ligne 0 colonne 3
        .ListEssai.List(k, 4) = Worksheets("BDD").Range("E" & j).Value 'remplissage ligne 0 colonne 4
        .ListEssai.List(k, 5) = Worksheets("BDD").Range("F" & j).Value 'remplissage ligne 0 colonne 5
        .ListEssai.List(k, 6) = Worksheets("BDD").Range("H" & j).Value 'remplissage ligne 0 colonne 6
        .ListEssai.List(k, 7) = Worksheets("BDD").Range("I" & j).Value 'remplissage ligne 0 colonne 7
        .ListEssai.List(k, 8) = Worksheets("BDD").Range("J" & j).Value 'remplissage ligne 0 colonne 8
        .ListEssai.List(k, 9) = Worksheets("BDD").Range("K" & j).Value 'remplissage ligne 0 colonne 9
        k = k + 1 'passage à la ligne suivante
    Next j
End With
End Sub
Jusque là ça fonctionne.
L'utilisateur peut ensuite filtrer la liste.
En fait, je recharge toute la liste en fonction du critère sélectionné par l'utilisateur :
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
25
26
If OptionButton2.Value = True Then 'filtre par phase
k = 0
'recherche de la dernière ligne du tableau excel
derligne1 = Split(Worksheets("BDD").UsedRange.Address, "$")(4)
    With FormGen 'nom du formulaire
    .ListEssai.Clear 'réinitialisation du contenu de la liste
    'ouverture de la boucle de la ligne 2 à la dernière ligne du tableau excel
        For j = 2 To derligne1
            .ListEssai.AddItem 'ajout des items
                If Worksheets("BDD").Range("E" & j).Value = ComboBox2.Value Then
                    .ListEssai.List(k, 0) = Worksheets("BDD").Range("A" & j).Value 'remplissage ligne 0 colonne 0
                    .ListEssai.List(k, 1) = Worksheets("BDD").Range("B" & j).Value 'remplissage ligne 0 colonne 1
                    .ListEssai.List(k, 2) = Worksheets("BDD").Range("C" & j).Value 'remplissage ligne 0 colonne 2
                    .ListEssai.List(k, 3) = Worksheets("BDD").Range("D" & j).Value 'remplissage ligne 0 colonne 3
                    .ListEssai.List(k, 4) = Worksheets("BDD").Range("E" & j).Value 'remplissage ligne 0 colonne 4
                    .ListEssai.List(k, 5) = Worksheets("BDD").Range("F" & j).Value 'remplissage ligne 0 colonne 5
                    .ListEssai.List(k, 6) = Worksheets("BDD").Range("H" & j).Value 'remplissage ligne 0 colonne 6
                    .ListEssai.List(k, 7) = Worksheets("BDD").Range("I" & j).Value 'remplissage ligne 0 colonne 7
                    .ListEssai.List(k, 8) = Worksheets("BDD").Range("J" & j).Value 'remplissage ligne 0 colonne 8
                    .ListEssai.List(k, 9) = Worksheets("BDD").Range("K" & j).Value 'remplissage ligne 0 colonne 9
                    k = k + 1 'passage à la ligne suivante
                Else
                End If
        Next j
    End With
ElseIf ...
Ca aussi ça fonctionne.
Par contre, lorsque j'essaie de récupérer le nombre de lignes de ma listbox j'ai des résultats incohérents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MsgBox FormGen.ListEssai.ListCount
Me renvoie 8 à l'initialisation du formulaire.
Mais renvoie 8 aussi après filtrage, ce qui n'est pas exact.
On dirait qu'il me renvoie toujours le nombre de lignes intégrées la première fois...
Merci pour vos idées.
Bonne journée