utilisation champ listbox avec multiselected résolu

utilisation champ listbox avec multiselected résolu - VB/VBA/VBS - Programmation

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
Reply

Marsh Posté le 09-05-2006 à 13:41:56   

Reply

Marsh Posté le 09-05-2006 à 14:42:45    

:hello:  
 
Il faut que tu parcours tous les éléments de ta liste pour savoir s'ils sont sélectionnés ou pas :
 


 
For i= 0 To .ListBCli.ListCount - 1
 
     If .ListBCli.Selected(i) Then
          'Traitement pour l'element selectionne
     endif
 
next i
 


Reply

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

Reply

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)  
.....


Message édité par SplitForm le 09-05-2006 à 15:56:43
Reply

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

Reply

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
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


 
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)


Message édité par SplitForm le 09-05-2006 à 19:35:40
Reply

Marsh Posté le 10-05-2006 à 08:16:01    

OUI C CA ES FONKTIONNIERT !!!
thx :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed