Problème avec Listcount d'une listbox
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:
1 2 3
| Private Sub UserForm_Initialize()
Call MAJ
End Sub |
Et un module :
Code:
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:
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:
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