Reprise de données dans un list box (VBA EXCEL)

rvw68 Messages postés 29 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 24 janvier 2006 - 9 mars 2004 à 21:13
rvw68 Messages postés 29 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 24 janvier 2006 - 10 mars 2004 à 13:19
Bonjour,

J'ai une list box dans laquelle je recupère une list a partir de cellules EXCEL. Lorceque je sellectionne une valeur dans la liste elle va remplir une base de données. jusque là tout va bien. mais lorsque je veut recuperer la valeur de la base pour la selectionner dans la listbox, ça ne marche pas.

Mon code est :

With ThisWorkbook.Worksheets("liste_personnes")
    For j = 0 To UserForm1.Lsttype.ListCount - 1
    If UserForm1.Lsttype.List(j) = .Cells(i, 21) Then
    UserForm1.Lsttype.List = j
    End If
    Next j 
End With


Merci d'avance

3 réponses

yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
9 mars 2004 à 22:56
pas bien compris le problème ...surtout par rapport au code que tu mets....ton problème se situe bien entre la valeu de la base et la listbox?????alors pourquoi le bout de code de ta feuille excel????
enfin bref....

si ton pb provient du code que tu donnes:
à la place de :
If UserForm1.Lsttype.List(j) = .Cells(i, 21) Then
UserForm1.Lsttype.List = j
End If

mets:
If UserForm1.Lsttype.List(j) = .Cells(i, 21) Then
UserForm1.Lsttype.ListIndex = j 'c'est l'index qu'il faut modifier
UserForm1.Lsttype.Selected(UserForm1.Lsttype.ListIndex) = True 'histoire d'etre sûr que ton curseur va se positionner sur l'index en question même si c'est pas obligé
exit for 'rien ne sert de continuer puisqu'on a trouvé l'index en question
End If


le principe est le même si ton problème ne viens pas de là mais de ta valeur de la base....

Un conseil toutefois, essai de voir l'utilisation du Treeview , c'est plus complexe je te l'accorde mais l'interet c'est qu'à chaque node tu peux attribuer une Clé (si tout ça te parait floue tu comprendras en faisant des recherches) ainsi, si les valeur de ta liste sont toutes différentes, tu peux les mettre en clé...l'intéret , tu appelles une node via sa clé donc pas besoin de faire de boucle For...mais simplement :
TreeType.Nodes(.Cells(i, 21)).Selected = True


En espérant t'avoir aidé ;-)

Yomm >:)

[mailto:yommvb@ifrance.com mailto:yommvb@ifrance.com]

Entre-aidez vous !!!!! partagez vos connaissances !!!!!
0
rvw68 Messages postés 29 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 24 janvier 2006 1
10 mars 2004 à 13:18
Bonjour,

J'ai tenté avec ton premier code mais il ne connait pas exit for sous VBA Excel, pour le treeview, je n'ai rien trouvé dans l'aide, je ne trouve pas cet objet.

je vais continuer à chercher.

RV
0
rvw68 Messages postés 29 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 24 janvier 2006 1
10 mars 2004 à 13:19
J'ai oublié de dire :

ça ne marche pas il selectionne a chaque fois le premier de la liste.
0
Rejoignez-nous