Urgent : VBA - Problème de récupération des données dans une liste à sélection m [Résolu]

Messages postés
19
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
11 mars 2009
- - Dernière réponse : lepgwen
Messages postés
19
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
11 mars 2009
- 13 juil. 2005 à 14:59
Salut !

J'ai un problème : j'ai une liste dans laquelle se trouve une liste de tous les salaries. Je voudrais pouvoir sélectionner plusieurs salaries pour afficher les données qui leur correspondent. Pour cela, j'ai donc fait une liste à sélection multiple.

Le problème c'est que quand je valide, je ne parviens à récupérer qu'un seule enregistrement : le dernier sélectionné.

Voila mon code, en espérant avoir été assez clair.

'pour chaque ligne de la liste
With LstSalarie
For i = 0 To (.ListCount - 1)
If .Selected(i) = True Then
Call AfficheParSalarie(LstSalarie.List(LstSalarie.ListIndex, 2))
End If
Next
End With

Merci beaucoup pour l'aide que vous m'apporterez !
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
79
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
14 juillet 2005
1
3
Merci
Il ne faut pas utiliser la propriété ListIndex dans une liste multi select car elle renvoie l'index de la ligne ayant le focus, que celle-ci soit ou non actuellement sélectionnée.

Regarde cet exemple:

Option Explicit
Option Base 0


Private Sub UserForm_Initialize()


Dim tabSalaries() As String


ReDim tabSalaries(2, 1)


tabSalaries(0, 0) = "Philippe"
tabSalaries(0, 1) = "4580"

tabSalaries(1, 0) = "Claude"
tabSalaries(1, 1) = "2610"

tabSalaries(2, 0) = "Benoît"
tabSalaries(2, 1) = "4689"

LstSalarie.ColumnCount = 2
LstSalarie.List() = tabSalaries

End Sub


Private Sub CommandButton1_Click()


Dim i As Long


With LstSalarie
For i = 0 To (.ListCount - 1)
If .Selected(i) = True Then
MsgBox "Nom: " & LstSalarie.Column(0, i) & " Numéro: " & LstSalarie.Column(1, i)
End If
Next
End With


End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 136 internautes nous ont dit merci ce mois-ci

Messages postés
205
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
28 novembre 2005
1
0
Merci
Salut!

ne serai ce pas ceci
Call AfficheParSalarie(LstSalarie.List( i , 2))

a la place de cela
Call AfficheParSalarie(LstSalarie.List(LstSalarie.ListIndex, 2))

?

Tien moi au courant

++

PtitGrumo
Messages postés
19
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
11 mars 2009
0
Merci
Salut !
Merci de ta réponse mais non ca marche pas j'ai toujours le nom de la dernière personne sélectionnée
Merci qd meme
Messages postés
19
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
11 mars 2009
0
Merci
Super ca marche
Merci beaucoup !!!