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
 

Damien281211

XLDnaute Occasionnel
Je voulais faire avec une textbox car la pour l'instant je dois avoir qu'une quinzaine de reference, après que mon fichier sera terminé je serais a environ 100 reference différentes dans une combo cela me paraît pas trop judicieux qu'en pense tu?
 

Damien281211

XLDnaute Occasionnel
Je ne suis pas censé retenir toutes les références même si il y en aurait plus de 100, les reference me son donné soit par le responsable production ou par la responsable des commandes je ne dois donc pas les retenir. Sest pour cela que je passais par une saisie plus rapide que de chercher dans une liste déroulante et de plus les info récupérer durant la recherche nous permettent de vérifier qu'il s'agisse bien de la bonne référence
 

fanch55

XLDnaute Barbatruc
Damien :
Pour te dépanner au vu du fichier fourni :
Private Sub TextBox_reference_Change()
On Error Resume Next

'inscrire notre recherche dans le filtre en p6​
'rajouter "*" & devant le me. si on veut trouver une correspondance sans taper toute la reference​
Sheets("Stock_Congel").Range("Critère_Transfert") = Me.TextBox_reference​
Sheets("Stock_Congel").Range("Tableau1[#all]").AdvancedFilter Action:=xlFilterCopy, criteriarange _​
:=Sheets("Stock_Congel").Range("p5: p6"), copytorange:=Sheets("Stock_Congel").Range("r5:aa5"), unique:=False​

'afficher le résultat dans la listbox
UserForm_Activate


End Sub

Mais il y a plus simple en mettant une combobox à la place de la Textbox.
Je vais regarder celà ...
 

fanch55

XLDnaute Barbatruc
Damien,
Nouveau fichier avec combobox .
Je pense que tu vas être surpris par le code très court de l'userform, celui-ci utilise SQL pour faire les extractions et les tris .
Attention si tu intègres le module Adodbc dans un autre fichier, il faut faire une référence à ADO :
1585429072904.png
 

Pièces jointes

  • Stock Cadres test v1-2.xlsm
    89 KB · Affichages: 14

fanch55

XLDnaute Barbatruc
CP4 :
Testé ton fichier, ça fonctionne bien et rapidement mais un truc bizarre lors du transfert,
les alignements de cellules dates font un peu ce qu'ils veulent :
1585429754202.png

1585429879820.png

Mais c'est anodin ... ;)
 

Pièces jointes

  • 1585429643950.png
    1585429643950.png
    49.4 KB · Affichages: 6

Damien281211

XLDnaute Occasionnel
un grand merci a tous les deux
pour le moment j'ai opté pour le rajout de "UserForm_Activate " et cela fonctionne parfaitement
en effet ton code est bien plus court mais je n'ai pas compris tes explications, il y a encore quelque temps je faisait uniquement des tableau basique sur excel.
je ne savais pas que l'on pouvait effectuer une saisie dans une combo pour moi il n'y avait que la liste déroulante.
Je vais devoir concevoir un autre fichier par la suite j'utiliserais surement la combo.
merci également cp4 de ton travail, je pense que charger toute ma base de donnée avant la recherche pourra me servir par la suite sur un autre onglet pour faire une recherche sur une période donnée.
par contre a quoi sert la dernière colonne du tableau?
J'ai vu sur un tuto une personne a mis un ID a chaque ligne et s'en servait pour faire des extractions de ligne sur un autre tableau. Est-ce le même but pour toi ou non?
En tout cas encore merci beaucoup
 

fanch55

XLDnaute Barbatruc
@cp4
Salut, pour l'erreur au #54,
étant donné qu'avec tous les essais, on a mis un peu n'importe quoi dans la colonne reference,
il faut :
  1. soit supprimer toutes les lignes dont la référence n'est pas un nombre
    ( pas de référence vide non plus)

  2. soit redéfinir la colonne en "Chaine" et modifier la procédure de Dlc_Recherche :
    VB:
    Private Sub Cbx_Ref_Change() 
    If Application.EnableEvents Then
    ListBox_liste.Clear
    Sql_Fields ListBox_liste, _
    "Select * from " & Get_Table([Tableau1]) & _
    " where Reference" & IIf(Cbx_Ref = vbNullString, " is null", "='" & Cbx_Ref & "'") & _
    " order by DLC,[Date Congel]", _
    ListBox_liste.ColumnWidths
    End If
    End Sub
 
Dernière édition:

Damien281211

XLDnaute Occasionnel
J'ai fait une faute de frappe dans mon message précédent. Je voulais dire vous m'avez totalement perdu, le sens de la phrase change totalement.
Comme dit précédemment vos deux solution répondent parfaitement à mes attentes une grand merci.
J'ai répondu à ton MP cp4
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 009
Membres
103 089
dernier inscrit
johnjohn1969