Accueil > Forum > > > > Demande d'info sur la, propriété "SORTED" d'une listbox
Demande d'info sur la, propriété "SORTED" d'une listbox
lundi 18 juin 2007 à 23:13:20 |
Demande d'info sur la, propriété "SORTED" d'une listbox

nono78220
|
Bonjour à tous, J'ai une listbox contenant des titres sous forme de date + nom, se référant à des documents scannés. Ex: 15.06.2007 02.04.2005 03.04.2004 etc ... Je voudrais trier ces dates de la plus ancienne à la plus récente, et que la plus récente apparaissent tout en haut de ma listbox.PROBLEME: 1/ Si j'utilise "Sorted" les dates ne sont absolument pas triées, puisque "sorted" trie en fonction du 1er chiffre, en l'occurence ici les dates seront triées comme ceci: 02.04.2005 > 03.04.2004>15.06.2007 Donc ce n'est pas la bonne solution. 2/ si j'utilise ce code : "lstNono.AddItem DateScanne, 0" le dernier document scanné apparaitra tout en haut de ma listbox (génial !!) mais les dates ne seront pas triées correctement comme dans l'exemple 1/ 3/ Si mes dates sont enregistrées de cette manières : 2007.06.15 2005.04.02 2004.04.03
etc ... l es dates sont correctement triées par "sorted", càd 2004.04.03>2005.04.02>2007.06.15 (ouais !!!) mais la date la plus récente est en bas de la listbox, ce qui est embêtant lorsqu'il y a plusieurs documents scannés, il faut utiliser le curseur pour visualiser le document le plus récemment scanné !! 4/ L'idéal serait d'avoir des dates triées, avec la plus récente en haut de la listbox et de préférence sous ce format 15.06.2007 !!!!!Quelqu'un aurait-il une idée ?Merci d'avance pour vos réponses Nono
|
|
lundi 18 juin 2007 à 23:56:44 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

yomm
|
Salut, rapidement, je peux te filer une astuce: le plus simple est de créer une listbox qui a la propriété sorted = true et de la rendre visible false (appelons la List2) le but est de faire une fonction qui prend les items de ta listbox, les formats de telle sorte qu'ils puissent être triés puis les restitue au bon format: en gros, on copie tous les items dans un listbox tempon (ici List2) les valeurs sont ajoutées au format YYYYMMDD afin de faire une comparaison numérique avec la propriété Sorted=True les items sont triés dans l'ordre croissant ensuite on vide la listbox d'origine on prend le résulat obtenu par le trie on recré les items dans la listbox d'origine avec le format souhaité:DD.MM.YYYY en gros ça donne: ----------------------------------------------------------------------------------------- Private Sub ListBoxSort(ByVal MyListBox As ListBox) Dim i As Long List2.Clear For i = 0 To MyListBox.ListCount - 1 List2.AddItem Right(MyListBox.List(i), 4) & Mid(MyListBox.List(i), 4, 2) & Left(MyListBox.List(i), 2) Next MyListBox.Clear For i = 0 To List2.ListCount - 1 MyListBox.AddItem Right(List2.List(i), 2) & "." & Mid(List2.List(i), 5, 2) & "." & Left(List2.List(i), 4) Next End Sub ----------------------------------------------------------------------------------------- c'est un peu barbare mais ça marche, bien évidemment il ne faut pas 500000 items...sinon c'est un peu long ;-) en espérant que cela t'aide @+ Yomm yommvb@free.frEt que la source soit avec toi!!!!!
|
|
lundi 18 juin 2007 à 23:58:49 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

yomm
|
PS: pour ma fonction je suis parti du format DD.MM.YYYY je précise pour les lignes du genre : Right(MyListBox.List(i), 4) & Mid(MyListBox.List(i), 4, 2) & Left(MyListBox.List(i), 2) re @+ Yomm yommvb@free.frEt que la source soit avec toi!!!!!
|
|
mardi 19 juin 2007 à 07:08:19 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

Renfield
|
Tu peux les insérer triées, c'est surement le plus simple...
Pour chaque element a a ajouter si la liste est vide, on l'ajoute si la liste n'est pas vide, on cherche ou l'ajouter : pour chaque element (ou par dichotomie, pour accelerer), on regarde s'il doit être placé avant notre nouvel item s'il doit etre placé avant, on continue a regarder les elements sinon, on place notre nouvel element, on a trouvé sa place
tu y gagnera, je pense, en rapidité (une seule insertion dans la liste). Et ca n'est pas très complexe a mettre en place.
Renfield Admin CodeS-SourceS- MVP Visual Basic
|
|
mardi 19 juin 2007 à 08:19:54 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

jmfmarques
|
Bonjour,
Juste un rappel de l'aide en ligne (pour le cas où on voudrait retrier une listbox) :
L'aide en ligne précise que l'on peut forcer l'emplacement en faisant une insertion et en précisant l'index d'insertion ...
Donc (exemple) :
Private Sub Form_Activate() List1.AddItem "2005/04/02" List1.AddItem "2005/05/01" List1.AddItem "2007/06/15" List1.AddItem "2004/04/03" End Sub
Private Sub Command1_Click() ReDim toto(List1.ListCount) As String comb = List1.ListCount - 1 For i = comb To 0 Step -1 toto(i) = Format(List1.List(comb - i), "dd/mm/yyyy") Next List1.Clear For i = 0 To comb List1.AddItem toto(i), i Next End Sub
Rigolo, non ?
|
|
mardi 19 juin 2007 à 08:57:12 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

nono78220
|
Bonjour à tous,
Thanks pour vos réponses. Je vais étudier vos propostitions durant la journée et je vous tiens au courant en cas de difficultés
Merci Nono
|
|
mardi 19 juin 2007 à 09:43:04 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

yomm
|
re-Salut
Voici en gros ce que donnerai la proposition de Rey:
--------------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Call LstAddItem("15.06.2007") Call LstAddItem("03.04.2004") Call LstAddItem("02.04.2005")
End Sub
Private Sub LstAddItem(ByVal Texte As String) Dim i As Long For i = 0 To List1.ListCount - 1 If Val(Right(List1.List(i), 4) & Mid(List1.List(i), 4, 2) & Left(List1.List(i), 2)) > Val(Right(Texte, 4) & Mid(Texte, 4, 2) & Left(Texte, 2)) Then Exit For End If Next List1.AddItem Texte, i
End Sub
---------------------------------------------------------------------------------------------------
avec cette fonction, chaque fois que tu ajoute un item il est automatiquement placé à la bonne place.
Contrairement à rey, je ne sais pas si tu y gagneras forcément, disons que c'est plus en fonction de ton appli. Je m'explique : (Rey n'hésite pas à me contredire biensur) 1) ton appli charge un bonne fois pour toute une liste de dates : - là j'obterais pour ma solution. en effet au final tu remplies 3 fois une listbox (enfin 2+1) mais au moins tu ne la reparcours pas à chaque insertion.....donc ça peut etre plus rapide 2) ton appli ajoute des dates lorsque l'utilisateur utilise l'appli...en gros cela se fait au fur et à mesure : - là j'obterais pour la solution de Rey au moins l'item est directement classer.
===> Conclusion: Combine les deux ;-) Si tu dois charger des valeurs initiales appelle : ListBoxSort Lorsque tu ajoutes un item par la suite appelle : LstAddItem
Quand penses tu Rey ?
@+
Yomm
yommvb@free.fr
Et que la source soit avec toi!!!!!
|
|
mardi 19 juin 2007 à 09:45:43 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

yomm
|
Quand Qu'en penses tu Rey ? (y en a d'autres mais je vais pas tout retaper) @+ Yomm yommvb@free.frEt que la source soit avec toi!!!!!
|
|
mardi 19 juin 2007 à 11:12:31 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

jmfmarques
|
Ouais... Je trouve que vous vous compliquez bien la vie, moi...
Une listbox avec sa propriété Sorted = True et :
Private Sub Form_Activate() mf1 = "yyyy/mm/dd" mf2 = "dd/mm/yyyy" List1.AddItem Format("02/04/2005", mf1) List1.AddItem Format("03/05/2006", mf1) List1.AddItem Format("10/01/2002", mf1) List1.AddItem Format("30/03/2004", mf1) ReDim toto(List1.ListCount) As String comb = List1.ListCount - 1 For i = 0 To comb List1.AddItem Format(List1.List(comb), mf2), i List1.RemoveItem comb + 1 Next End Sub
Etr voilà : classés par ordre décroissant et dans un format lisible C'est tout !
|
|
mardi 19 juin 2007 à 12:08:19 |
Re : Demande d'info sur la, propriété "SORTED" d'une listbox

yomm
|
en effet jmfmarques...mais comment tu ajoutes un item après coup ? de plus le format souhaité par nono était DD.MM.YYYY et la fonction format ne fonctionne pas dans ce cas (sauf si tu changes les paramètres régionaux biensûr) ;-) Yomm yommvb@free.frEt que la source soit avec toi!!!!!
|
|
Cette discussion est classée dans : listbox, dates, sorted, triées, récente
Répondre à ce message
Sujets en rapport avec ce message
listbox et base de donnee [ par vichenzo ]
slt a tousj ai:- une base de donnee- une form avec une listbox et une textbox- un probleme....ds ma base de donnee g plusieurs chps dont un nomme "nom
Fichier texte et listbox [ par lolokill666 ]
Bonjour tout le monde, g un probleme, g bo chercher, je ne voit pas comment resoudre ce probleme.Je cherche a lire un fichier texte ligne par ligne af
Rechercher texte !! :) [ par scoobydoos ]
Salut,j'ai un TextBox, une command "OK" et une ListBox. Je voudrais faire une recherche de texte dans la ListBox avec le texte écrit dans le TextBox..
Rechercher texte !! :) [ par scoobydoos ]
salut,j'ai tjrs un TextBox, un Command "OK" et une ListBox. J'arrive bien à faire une recherche de texte. Ceux que je veux maintenant c'est de pouvoi
URGENT !!! concaténation avec alignement dans listbox [ par akhiro ]
Bonjour,Comment faire pour concaténer des enregistrements de longueurs différents dans une listbox sans qu'il y ait de décallage d'une ligne à l'autre
URGENT!!! Saisie de nombres dans une listbox ?? [ par akhiro ]
Bonjour,Comment réaliser un controle sur la saisie de l'utilisateur dans un textbox qui ne doit contenir que des nombres (pas de lettres) mais qui ne
Listbox [ par shaft107 ]
je voudrai ajouter le resultat de ma requete sql (access) dans une listbox sous vb 6merci
Listbox et recordset [ par jff27 ]
Comment faire pour affecter le resultat d'une requette (Nom et prenom) dans 2 colonnes d'un controle listbox?D'avance merci.
probleme de date entre VB et ACCESS [ par ptij ]
J'utilise VB 6 pour faire une application qui utilise des dates.Je rentre ces dates dans une base de données access2000 pour pouvoir les utiliser plus
Probleme de date entre VB6 et Access 2000 [ par pisko ]
Salut,J'ai un soucis quant aux échanges de dates entre un prog VB6 et Access.J'ai une table qui contient des champs date au format "date abgrégée" don
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|