LISTBOX MULTI COLONNES

Signaler
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
-
50415041
Messages postés
3
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
20 novembre 2006
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30975-listbox-multi-colonnes

50415041
Messages postés
3
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
20 novembre 2006

OK MEN
lhoussin2006
Messages postés
6
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
9 août 2006

j'ai pas vu pour les Listview mais je n'estime pas que j'arriverais à les comprendre, ce qui est tout à fait génial c'est l'idée et l'algorithme que tu as choisis pour te débrouiller.
bravo!
cs_Jielde
Messages postés
226
Date d'inscription
mardi 17 octobre 2000
Statut
Membre
Dernière intervention
1 décembre 2010

Oui un combo/TextBox te permettra de faire des recherche intuitive dans la listbox.
ORTIPIC
Messages postés
41
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
16 juillet 2007

j espere que la reponce de jielde satisfait couteau7 ?

un label semble une solution

ou un combo pour memoriser les interactions prog utilisateur
couteau7
Messages postés
24
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
23 juin 2007
1
Oui j'y avais pensé mais bon je pense que je vais le faire sa va me faire moins de boullot comme ça
cs_Jielde
Messages postés
226
Date d'inscription
mardi 17 octobre 2000
Statut
Membre
Dernière intervention
1 décembre 2010

Moi a ta place, et j'ai fait sa dans mon appli, j'ai ajouter des label en haut de chaque listbox, et kan je click sur un label sa trie la listbox de facon ascendent ou déscendant.
couteau7
Messages postés
24
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
23 juin 2007
1
Bonjour, peut être que vous pourrez me sauver la vie sa va fair 2 semaine que je cherche dans tous les coins et la je suis limite a jeter mon ordinateur j'ai réaliser un petit programme qui n'a pas besoins d'un listview mais juste une listbox a 2 colonnes.

Pour les remplir il y a pas de problème meme pour acceder au information mais mon réel problème c'est comment ajouter dans l'en tete des colonne se que se represent dans la colonne 1 c'est "Articles" et dans la 2 emme c'est "Quantité" j'ai tout tester j'ai regarder dans tout les code que j'ai pu trouver il y a tout d'expliquer mais rien sur sa .

veuillez m'excuser de < m'incruster >

Encore merci
cs_Jielde
Messages postés
226
Date d'inscription
mardi 17 octobre 2000
Statut
Membre
Dernière intervention
1 décembre 2010

Effectivement, les ListView sont mieux.

Mais je prog une appli pour me facilité la vie dans a mon boulot, et la société a bloquer pas mal de choses dans Win2k

Je ne peut donc pas installer de nouvelles OCX et j'ai du revenir sur les bon vieux ListBox.

J'avais déja trouvé l'idée de mettre bout a bout chaque listbox, avec des labels comme en-tête de colonne.

Par contre j'arrivais pas a faire en sorte que toutes les listbox scroll en même temps. Et les Timer sont une solution.

Si vous avez d'autre solutions, je suis preneur.
ORTIPIC
Messages postés
41
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
16 juillet 2007

Badge

cette source est tres mediocre.............
mais je n avais pas encore testé un listview ,et c est bien mieu
j ai trouvé cette source qui explique bien ,de qui ???? chépu
j ai apporté une modif (rnd......) pour bien voir le tri des colonnes

'---------------------vla------------------------
une form /un listview /ajout du composant micro...windows....comm.....control (version 6 sp6)
'------------------------------------------------
Private Sub Form_Load()

Dim i As Integer ' Compteur
Dim j As Integer ' Compteur d'objets ListSubItems
Dim sngWidth As Single
Dim si As ListSubItem
Dim li As ListItem

' Les objets ColumnHeaders et ListSubitems ne sont pas visibles
' sauf si la valeur lvwReport est affectée à la propriété View.
ListView1.View = lvwReport

' Calcule la largeur d'un objet ColumnHeader.
sngWidth = ListView1.Width / 5

' Crée cinq objets ColumnHeader.
For i = 1 To 5
ListView1.ColumnHeaders.Add Text:="Col " & i, Width:=sngWidth
Next i

' Crée vingt objets ListItem. Pour chacun d'entre eux, crée quatre
' objets ListSubItem. Définit la couleur rouge pour la propriété
' ForeColor de chaque objet.
For i = 1 To 20
Set li = ListView1.ListItems.Add(Text:="Élément " & i)
For j = 1 To 4
Set si = li.ListSubItems.Add(Text:="Sous-élément " & Int(Rnd * 100)) '' j & i &
si.ForeColor = vbRed
Next j
Next i

End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
' Quand vous cliquez sur un objet ColumnHeader, le contrôle
' ListView est trié selon les sous-éléments de cette colonne.
' Affecte à la propriété SortKey l'index de ColumnHeader - 1
ListView1.SortKey = ColumnHeader.Index - 1
' Affecte à la propriété Sorted la valeur True afin de trier la
' liste.
ListView1.Sorted = True
End Sub


Private Sub ListView1_ColumnClickdd(ByVal ColumnHeader As _
MSComctlLib.ColumnHeader)
' tri du ListView lors du clic sur l'entête de colonne

Dim strName As String
Dim dDate As Date
Dim lngItem As Long
Dim dTaille As Long

'Handle User click on column header
Select Case ColumnHeader.Text
Case "Fichier" 'User clicked sur l'entete d'une colonne texte
ListView1.Sorted = True 'Use default sorting to sort the
ListView1.SortKey = 0 'items in the list
ListView1.SortKey = ColumnHeader.Index - 1
ListView1.SortOrder = (ListView1.SortOrder - 1) * -1
Case "Date" 'User clicked sur l'entete d'une colonne date
ListView1.Sorted = False 'User clicked on the Date header
'Use our sort routine to sort
indice = 1 'by date
Asce = Not Asce
SendMessage ListView1.hWnd, _
LVM_SORTITEMS, _
ListView1.hWnd, _
AddressOf CompareDates
ListView1.Refresh
For lngItem = 0 To ListView1.ListItems.Count - 1
ListView_GetListItem lngItem, ListView1.hWnd, strName, dDate
Next

Case "Taille" 'User clicked sur l'entete d'une colonne numérique
ListView1.Sorted = False
'Use our sort routine to sort
indice = 2 'by date
Asce1 = Not Asce1
SendMessage ListView1.hWnd, _
LVM_SORTITEMS, _
ListView1.hWnd, _
AddressOf CompareValeurs
ListView1.Refresh
For lngItem = 0 To ListView1.ListItems.Count - 1
ListView_GetListItemN lngItem, ListView1.hWnd, strName, dTaille
Next

End Select

End Sub
cs_NoFutur
Messages postés
171
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Badge,

Si tu cherche à classer des infos dans une ListView va dans la sub "List1_ColumnClick" du controle ListView et copie ce bout de code : List1.SortKey = ColumnHeader.Index - 1 (List1 étant le nom d'occurence de ton ListView :-)

@plus
cs_BADGE
Messages postés
2
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 juillet 2005

Je trouve que le scroll "lag" trop à mon goût. Je dois avouer que j'ai déjà penser à cette solution, mais elle n'est pas esthétique. De plus, il n'est pas facilement transportable d'un projet à l'autre. Je préfère le ListView! Par contre, je n'ai pas trouvé comment changé l'ordre de tri en cliquant sur les en-têtes (headers) des colonnes.
cs_NoFutur
Messages postés
171
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Salut,

Je vais répondre à la question de ScSami :
Pour ceux qui ne veulent pas s'encombrer d'un ocx supplémentaire et qui ne sont pas trop exigeant ma fois ça peut toujours convenir qui sait :-)

@++
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
20
Bon, j'ai pas téléchargé la source mais selon ce que j'ai compris tu utilises plusieurs ListBox !!!!

Je n'ai qu'une question :
N'est-ce pas aberrant lorsqu'il existe les ListView ??????

Bonne prog.
cs_PROGRAMMIX
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011

Si tu veux faire du multi-colonnes avec un seul listbox, je te propose d'aller jeter un oeil à cette adresse : http://www.vbfrance.com/code.aspx?id=26686.

J'y ai déposé une source synthétisant plusieurs possibilités d'utilisation de l'API sendmessage avec un listbox ou un combobox. Tu y découvriras la manière de réaliser du multi-colonnes à la manière d'Access.

Bonne continuation.