Autres Trier une listbox par date

Damien281211

XLDnaute Occasionnel
Bonjour a tous
Je vous explique mon soucis
J'effectue une recherche via un formulaire ans une textbox. grâce à une recherche avancée je charge uniquement certaine ligne de ma base de données en fonction d'une reference précise.
Mes données se chargent dans une listbox.
Je souhaiterais savoir si sest possible de trier celle-ci par date chronologique ou alors trier ma colonne de tableau de recherche avancée?
Comment faire l'une ou l'autre ?
Merci d'avance
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,


Exemple


VB:
Option Compare Text
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  bd = f.Range("A2:D" & f.[A65000].End(xlUp).Row).Value
  ville = "Paris"
  n = 0
  Dim TblDest()
  For i = 1 To UBound(bd)
    If bd(i, 3) = ville Then
      n = n + 1: ReDim Preserve TblDest(1 To UBound(bd, 2), 1 To n)
      For k = 1 To UBound(bd, 2): TblDest(k, n) = bd(i, k): Next k
    End If
  Next i
  Me.ListBox1.ColumnCount = 4
  Me.ListBox1.ColumnWidths = "50;50;50;50"
  Me.ListBox1.Column = TblDest
  '---Tri par date
  a = Me.ListBox1.List
  Tri a, LBound(a), UBound(a), 3
  Me.ListBox1.List = a
End Sub

Sub Tri(a, gauc, droi, colTri)        ' Quick sort
 colD = LBound(a, 2): colF = UBound(a, 2)
 ref = a((gauc + droi) \ 2, colTri)
 g = gauc: d = droi
 Do
     Do While a(g, colTri) < ref: g = g + 1: Loop
     Do While ref < a(d, colTri): d = d - 1: Loop
     If g <= d Then
       For c = colD To colF
         temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
       Next
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call Tri(a, g, droi, colTri)
 If gauc < d Then Call Tri(a, gauc, d, colTri)
End Sub


Boisgontier
 

Pièces jointes

  • Copie de ListBoxConditionMultiCol.xlsm
    331.3 KB · Affichages: 27

Damien281211

XLDnaute Occasionnel
Bonjour,
J'ai tenté de reproduire le code de Boisgontier sur mon classeur, mais rien ne fonctionnent
j'avoue ne pas tout comprnedre au codage, j'ai donc modifié en fonction de mon propre classeur apparament pas correctement
pouvez-vous me venir en aide?
En allant sur l'onglet "Stock_Congel", j'active mon userform en cliquant sur "Mouvement"
Le premier bouton entrée sert aeffectuer mes entrée en stock, mon probleme se trouve sur le bouton option "transfert". Depuis le moment où j'ai modifié le code, j'ai directement une erreur.
Le but final est qu'en cliquant sur "transfert" mon userform "Recherche_DLC" s'active, je rentre une référence dans ma premier textbox (reference).Ma recherche se charge ensuite dans ma listbox.
Je souhaite que la listbox trie par ordre croissant mes dates de la colonne DLC.
Merci de votre aide
 

Pièces jointes

  • Stock Cadres test.xlsm
    73.2 KB · Affichages: 32

Damien281211

XLDnaute Occasionnel
Bonjour
Je ne savais pas trop comment m'y prendre à vrai dire
J'avais deux possibilité soit trier ma liste sur la base de donnée automatiquement ou ma listbox.
Boisgontier m'as proposé sur la listbox je n'ai pas réussi à modifier le code
Et en triant directement ma base de donnée je ne sais pas comment faire.
Sachant que mes entrées se font par mon formulaire
 

fanch55

XLDnaute Barbatruc
Ah, je viens de parcourir en vitesse ton fichier.
En fait, tu n'as pas de base à proprement parler mais un tableau de nom tableau1 .
Si j'ai bien compris, tu le mets à jour via ton formulaire.
Celui-ci te permet de saisir plusieurs lots que tu stockes dans une listbox.
Les éléments de ta listbox sont enregistrés ensuite dans le tableau.
Ce que tu veux faire, c'est trier cette listbox selon un ordre chrono (pendant la saisie ou avant l'enregistrement ?)
le critère, c'est la date de congélation ou celle de DLC ?
 

Damien281211

XLDnaute Occasionnel
Tu as tout compris je rentre mes ref lot date par le formulaire. Ensuite par moment il y a un transfert de marchandise entre l'onglet stock congel vers l'onglet stock petite congel via l'option transfert.
Pour le moment je n'ai pas encore paramétrer mais l'objectif est que je récupère dans ma listbox tous les produit d'une seule ref entrée dans ma textbox (avec plusieur lots et plusieur date qui arrivent dans la listebox) et que la listbox soit trié par ordre croissant afin d'avoir en premier la date de DLC la plus proche de la date du jour. Ensuite en cliquant dessus je pourrais la transférer dans l'onglet stock petite congel.
J'espère avoir été clair
 

Discussions similaires

Statistiques des forums

Discussions
312 180
Messages
2 085 991
Membres
103 081
dernier inscrit
jeromeolivier.raymond@wat