2 pièce(s) jointe(s)
Garnissage d'une listbox à partir d'un tableau
Bonjour tout le monde,
Voilà, ça fait 2 jours que je bute sur un truc stupide.
Dans un formulaire de gestion d'adhérents, je fais figurer 2 listbox : l'une pour les interlocuteurs de l'entreprise sélectionnée, l'autre pour ses métiers.
J'ai fait appel à une routine assez simple, qui fonctionne pour les interlocuteurs et m'affiche bien les 9 colonnes que j'ai demandées. Voici le bout de programme, qui me donne entière satisfaction, ainsi que la copie écran du résultat.
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 27 28 29 30 31 32
| Dernligne = Worksheets("Interlocuteurs").Range("A65000").End(xlUp).Row
Dim Tableau1_Interlocuteurs()
ReDim Tableau1_Interlocuteurs(Dernligne - 1, 10)
'Je commence par remplir un premier tableau en parcourant toute la feuille des interlocuteurs
Compteur = 0
For i = 2 To Dernligne
If Worksheets("Interlocuteurs").Cells(i, "B") = Numero_Adhérent_Recherché Then
Tableau1_Interlocuteurs(Compteur, 0) = Worksheets("Interlocuteurs").Cells(i, "A")
Tableau1_Interlocuteurs(Compteur, 1) = Worksheets("Interlocuteurs").Cells(i, "D")
Tableau1_Interlocuteurs(Compteur, 2) = Worksheets("Interlocuteurs").Cells(i, "E")
Tableau1_Interlocuteurs(Compteur, 3) = Worksheets("Interlocuteurs").Cells(i, "F")
Tableau1_Interlocuteurs(Compteur, 4) = Worksheets("Interlocuteurs").Cells(i, "G")
Tableau1_Interlocuteurs(Compteur, 5) = Worksheets("Interlocuteurs").Cells(i, "H")
Tableau1_Interlocuteurs(Compteur, 6) = Worksheets("Interlocuteurs").Cells(i, "I")
Tableau1_Interlocuteurs(Compteur, 7) = Worksheets("Interlocuteurs").Cells(i, "J")
Tableau1_Interlocuteurs(Compteur, 8) = Worksheets("Interlocuteurs").Cells(i, "C")
Compteur = Compteur + 1
End If
Next
'Puis je charge les éléments dans un tableau dont la taille correspond aux nombre d'éléments trouvés.
Dim Tableau2_Interlocuteurs()
ReDim Tableau2_Interlocuteurs(Compteur - 1, 9)
For i = 0 To Compteur - 1
For j = 0 To 8
Tableau2_Interlocuteurs(i, j) = Tableau1_Interlocuteurs(i, j)
Next
Next
'Et pour finir, je garnis la listbox des interlocuteurs
Me.LB_Interlocuteurs.List = Tableau2_Interlocuteurs |
Pièce jointe 165971
Jusque là tout va bien, j'ai planté le décors. C'est maintenant que ça se corse.
J'ai adapté cette routine pour les métiers, pour une listbox qui ne comporte que 2 colonnes (contre 9 dans la précédente).
Elle tourne apparemment correctement, et en suivant le déroulement pas à pas, je trouve bien dans "Tableau2_Métiers" l'identifiant en (i,0) et l'intitulé du métier en (i,1).
Par contre, dans la listbox "LB_Interlocuteurs.List", je ne retrouve que l'affichage de l'identifiant. L'intitulé du métier n'est pas chargé dans la listbox.
Voici le bout de code concerné, ainsi que la copie écran du résultat. Il me semble pourtant que tout est en identique au premier code, mais peut-être que je deviens aveugle ?
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
| Dernligne = Worksheets("Métiers Adhérents").Range("A65000").End(xlUp).Row
Dim Tableau1_Métiers()
ReDim Tableau1_Métiers(Dernligne - 1, 1)
'On commence par remplir un premier tableau en parcourant toute la feuille des métierss
Compteur = 0
For i = 2 To Dernligne
If Worksheets("Métiers Adhérents").Cells(i, "B") = Numero_Adhérent_Recherché Then
Tableau1_Métiers(Compteur, 0) = Worksheets("Métiers Adhérents").Cells(i, "A")
Tableau1_Métiers(Compteur, 1) = Worksheets("Métiers Adhérents").Cells(i, "C")
Compteur = Compteur + 1
End If
Next
'Puis je charge les éléments dans un tableau dont la taille correspond aux nombre d'éléments trouvés.
Dim Tableau2_Métiers()
ReDim Tableau2_Métiers(Compteur - 1, 1)
For i = 0 To Compteur - 1
For j = 0 To 1
Tableau2_Métiers(i, j) = Tableau1_Métiers(i, j)
Next
Next
'Et pour finir, je garnis la listbox des métiers
Me.LB_Métiers.List = Tableau2_Métiers |
Pièce jointe 165972
Quelqu'un aurait-il une idée pour m'indiquer dans quelle direction chercher ? Qu'il en soit remercié par avance.