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 :
Et un module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub UserForm_Initialize() Call MAJ End Sub
Jusque là ça fonctionne.
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
L'utilisateur peut ensuite filtrer la liste.
En fait, je recharge toute la liste en fonction du critère sélectionné par l'utilisateur :
Ca aussi ça fonctionne.
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 ...
Par contre, lorsque j'essaie de récupérer le nombre de lignes de ma listbox j'ai des résultats incohérents.
Me renvoie 8 à l'initialisation du formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox FormGen.ListEssai.ListCount
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
Partager