Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2547 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  QUELLES SÉLECTIONS DANS LISTBOX ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

QUELLES SÉLECTIONS DANS LISTBOX ?

n°2220782
alainli
Posté le 25-02-2014 à 21:00:13  profilanswer
 

Bonsoir.
 
Soit une ListBox à sélections multiples, comportant plusieurs colonnes, qui se charge à l’apparition de mon UserForm.
Quand je sélectionne n’importe quelles lignes, je veux que le numéro de chacune d’entre elles, qui est présent dans la première colonne soit mémorisé.
 
Si par exemple je sélectionne trois lignes dont les numéros correspondent respectivement à 2, 10 et 24, mon message de contrôle apparaît bien trois fois. Dans le cas présent, j'ai sélectionné la ligne n° 24 en dernier. Le message suivant apparaît donc trois fois : « La ligne 24 est sélectionnée ! ». Or, au lieu de repérer la dernière ligne cliquée, je veux, pour que je puisse exporter les bonnes lignes, que chaque message m'affiche :
 
« La ligne 2 a été sélectionnée ! ».
« La ligne 10 a été sélectionnée ! ».
« La ligne 24 a été sélectionnée ! ».
 
Par conséquent, dans le code ci-dessous, que dois-je modifier ?  Merci d’avance de votre aide !
 
___________________
 
Private Sub BtonSelEnCours_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 
Dim TotalLignes As Integer
Dim i As Integer
 
    TotalLignes = UserForm1.LbCf.ListCount - 1
     
    Debug.Print "Nombre de lignes dans LbCf = " & TotalLignes
     
        With LbCf
         
            For i = 0 To TotalLignes
             
                If .Selected(i) Then
                     
                    NumLigneSelectionnée = LbCf.Column(0, LbCf.ListIndex)
                     
                    MsgBox "La ligne " & NumLigneSelectionnée & " est sélectionnée !", vbInformation
                     
                    .Selected(i) = False
                                 
                End If
                 
            Next i
         
        End With
 
End Sub

mood
Publicité
Posté le 25-02-2014 à 21:00:13  profilanswer
 

n°2220987
mmarle
Posté le 27-02-2014 à 16:12:00  profilanswer
 

Salut,
 
Je pense à stocker les valeurs sélectionnées dans une variable de type "String".
 
A la place de:

Code :
  1. MsgBox "La ligne " & NumLigneSelectionnée & " est sélectionnée !", vbInformation


On aurait:

Code :
  1. Dim Result As String
  2. Result = Result + "La ligne " & NumLigneSelectionnée & " est sélectionnée !" & VbLf


Puis à la fin du code:

Code :
  1. MsgBox Result


A tester!

n°2221006
alainli
Posté le 27-02-2014 à 20:04:34  profilanswer
 

Merci mmarle pour ta réponse mais cela ne fonctionne pas. Les trois données apparaissent à présent dans le même message, chaque fois que je clique sur Ok dans le message, mais toujours avec le numéro de ligne correspondant à ma dernière sélection de ligne. Ainsi, pour reprendre mon exemple, cela me renvoie dans le même message :
 
« La ligne 24 a été sélectionnée ! ».  
puis avoir cliqué sur Ok : « La ligne 24 a été sélectionnée ! ».  
puis avoir cliqué sur Ok : « La ligne 24 a été sélectionnée ! ».

n°2221034
mmarle
Posté le 28-02-2014 à 08:46:13  profilanswer
 

Salut,
 
Effectivement avec les valeurs ça fonctionne, par contre avec les index pas du tout!  
On obtient toujours l'index le plus grand quelque soient les items sélectionnés. Il faut oublier ListIndex!
 
Avec ce code ça fonctionne:

Code :
  1. For i = 0 To ListBox1.ListCount - 1
  2.     If ListBox1.Selected(i) = True Then
  3.         MsgBox "La ligne " & i + 1 & " est sélectionnée!"
  4.     End If
  5. Next i

A tester!

n°2221140
alainli
Posté le 28-02-2014 à 22:37:25  profilanswer
 

Bsr mmarle et merci.
Je suis d'accord avec toi mais cela ne solutionne pas mon problème. En effet, je travaille avec une base de données importante et j'ai des extractions différentes en fonction de mes requêtes. Donc, mon numéro de ligne ne correspond pas à une suite logique (1,2,3,...,100,101,etc...) mais à une valeur numérique contenue dans la 1ère colonne de ma ListBox. Mon chargement ListBox peut par exemple afficher : 161, 1152, 920, 1623, 750, dans ma 1ère colonne si ma requête me retourne une extraction avec 5 lignes.
Par conséquent, l'extrait de code suivant :
 
NumLigneSelectionnée = LbCf.Column(0, LbCf.ListIndex)  
 
fonctionnant parfaitement pour mémoriser la valeur de ma 1ère colonne, de la ligne sélectionnée, il faut que je trouve le moyen pour ne soit pas systématiquement mémorisée la valeur 1ère colonne de la dernière ligne que je sélectionne.
 
Il doit y forcément y avoir un moyen qui fonctionne, soit en passant pas ListIndex, voire par une autre combine.
 
Merci encore, ainsi qu'à ceux qui peuvent m'aider !

n°2221145
mmarle
Posté le 01-03-2014 à 07:04:23  profilanswer
 

Récapitulation:
 
1 - Boucler sur chaque ligne.
2 - Vérifier si la ligne est sélectionnée ou pas.
3 - Si sélectionnée alors extraction de la donnée stockée en colonne 1.
4 - Affichage du résultat.
Et ce pour une multi sélection!

Code :
  1. For i = 0 To ListBox1.ListCount - 1
  2.      If ListBox1.Selected(i) = True Then
  3.         MsgBox "La ligne " & ListBox1.List(i, 0) & " est sélectionnée!"
  4.      End If
  5. Next i


Avec ListBox1.List(Lignes,Colonnes).
 
A tester!
 

n°2221152
alainli
Posté le 01-03-2014 à 09:45:56  profilanswer
 

Bjr Mmarle.
Super, tu es un génie !  Cela fonctionne à présent à 100 %, quelle que soit mon extraction ou la diversité des numéros de la 1ère colonne. Pourquoi n'y avais-je pas pensé ? On en apprend tous les jours...
Merci encore !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  QUELLES SÉLECTIONS DANS LISTBOX ?

 

Sujets relatifs
[VB.NET] Double cliquer sur élément listbox [VB.NET][VB.NET] Problème affichage collections dans listbox [VB.NET]
Tableau php mysql editable et modifiable par sélections et filtresChoisir un nombre aléatoire qui n'est pas déja dans la listbox !
[VB EXCEL] Filtrer feuille excel via listbox[VBnet] Agrandir listbox/combobox au survol ? (PIC inside)
Création automatique ListBoxD7. Un ListBox de Jedi ne répond pas au clic.
[DELPHI] Image dans une listbox...Défilement données ListBox
Plus de sujets relatifs à : QUELLES SÉLECTIONS DANS LISTBOX ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)