utilisation champ listbox avec multiselected résolu - VB/VBA/VBS - Programmation
Marsh Posté le 09-05-2006 à 14:42:45
Il faut que tu parcours tous les éléments de ta liste pour savoir s'ils sont sélectionnés ou pas :
|
Marsh Posté le 09-05-2006 à 15:39:32
oki mais comment recuperer la valeur lu ?
je veux dire 'jai deja test ca existe pas ListCli.Selected(i).Value
je parcours donc comme tu m'as mis avec une boucle for ma ListBox mais qd je tombe sur un element selectionné par l'utilisateur, il faudrait que j'arrive a avoir la valeur pour pouvoir la comparer a celle d'une autre cellule
pouvoir faire qq chose ki ressemble a ca avec uen variable String déclaré en tete de procédure
For i= 0 To .ListBCli.ListCount - 1
If .ListBCli.Selected(i) Then
Cli = ListCli.Selected(i).Value
If (UneCellule = Cli) Then
faire truc
End If
end if
next i
merci
Marsh Posté le 09-05-2006 à 15:55:51
Il te faut récupérer la valeur contenu dans la bonne colonne de la bonne ligne :
.....
If .ListBCli.Selected(i) Then
Cli = .ListBCli.Column(<N° de la colonne contenant l'info voulue>, i)
.....
Marsh Posté le 09-05-2006 à 16:18:04
je comprends pas, je veux juste recuperer dans une variable String la valeur de la ListBox correspondant a celles selectionnées par l'utilisateur pour faire des tests dessus
je vois pas pourquoi il faudrait utiliser une colonne
Avec la boucle parcourant ma ListBox, quand un objet de ma ListBox a ete selectionné, j'aimerai recuperer la valeur de celui ci dans un string
dsl pour ma non comprehension
Marsh Posté le 09-05-2006 à 19:34:08
GillooZ a écrit : je comprends pas, je veux juste recuperer dans une variable String la valeur de la ListBox correspondant a celles selectionnées par l'utilisateur pour faire des tests dessus |
Lorsque la ListBox n'est pas MultiSelect, c'est la valeur de la BoundColumn qui est assignée à la propriété VALUE de la ListBox.
En MultiSelect, il faut 'pointer' sur la BoundColumn de chacune des lignes sélectionnées pour récupérer la valeur de ces lignes.
C'est pour cela qu'il faut que tu fasse référence à une colonne pour récuparer la valeur de la ligne sélectionnée.
EDIT : Dans ton cas, si tu n'as qu'une info par ligne, essaye ça :
.ListBCli.Column(0, i)
Marsh Posté le 09-05-2006 à 13:41:56
j'ai créé une ListBox de client sur laquelle g mis la propriété
ListBCli.MultiSelected = fmMultiSelectedExtended
pour pouvoir choisir plusieurs clients a la fois
mais comment utilise t on ce champ ?
je ve dire comment savoir combien de champs sont selectionnées et comment les utilisés pour faire une selection de ligne ?
j'ai dans ma fonction :
cptt = 3
cpt = 3
tmp = 0
With Worksheets("enr_incidents" )
Do
If (.Range("B" & cpt).Value = ListCli.Value) Then
test = test + 1
tmp = .Range("T" & cpt).Value * 1000000 / Deno
.Range("Y" & cptt).Value = tmp
cptt = cptt + 1
End If
cpt = cpt + 1
Loop Until IsEmpty(.Range("T" & cpt))
End With
et j'aimerai que toutes les lignes avec les differents clients que j'ai choisi avec la methode MultiSelected soient pris en compte(ma colonne B contient tous mes clients et j'aimerai donc avoir les informations liées aux plz clients dans ma colonne Y)
merci bcp
Message édité par GillooZ le 10-05-2006 à 08:16:29